MCPcopy Create free account
hub / github.com/apache/arrow / DoExchange

Method DoExchange

cpp/src/arrow/flight/test_definitions.cc:1080–1104  ·  view source on GitHub ↗

Echo client data, but with write options set to limit the nesting level.

Source from the content-addressed store, hash-verified

1078 // Echo client data, but with write options set to limit the nesting
1079 // level.
1080 Status DoExchange(const ServerCallContext& context,
1081 std::unique_ptr<FlightMessageReader> reader,
1082 std::unique_ptr<FlightMessageWriter> writer) override {
1083 auto options = ipc::IpcWriteOptions::Defaults();
1084 options.max_recursion_depth = 1;
1085 bool begun = false;
1086 while (true) {
1087 ARROW_ASSIGN_OR_RAISE(FlightStreamChunk chunk, reader->Next());
1088 if (!chunk.data && !chunk.app_metadata) {
1089 break;
1090 }
1091 if (!begun && chunk.data) {
1092 begun = true;
1093 RETURN_NOT_OK(writer->Begin(chunk.data->schema(), options));
1094 }
1095 if (chunk.data && chunk.app_metadata) {
1096 RETURN_NOT_OK(writer->WriteWithMetadata(*chunk.data, chunk.app_metadata));
1097 } else if (chunk.data) {
1098 RETURN_NOT_OK(writer->WriteRecordBatch(*chunk.data));
1099 } else if (chunk.app_metadata) {
1100 RETURN_NOT_OK(writer->WriteMetadata(chunk.app_metadata));
1101 }
1102 }
1103 return Status::OK();
1104 }
1105};
1106
1107void IpcOptionsTest::SetUpTest() {

Callers

nothing calls this directly

Calls 7

DefaultsFunction · 0.50
OKFunction · 0.50
BeginMethod · 0.45
schemaMethod · 0.45
WriteWithMetadataMethod · 0.45
WriteRecordBatchMethod · 0.45
WriteMetadataMethod · 0.45

Tested by

no test coverage detected