Commits


David Li authored and Wes McKinney committed 391de222933
ARROW-8297: [FlightRPC][C++] Implement Flight DoExchange for C++ This is a draft implementation of DoExchange that I'm submitting as part of the mailing list discussion. A simple usage demo is in flight_test.cc and test_util.cc. Overall, I've tried to share the implementation with DoGet/DoPut as much as possible, changing some classes to be templated. I've also taken the opportunity to clean up some things (e.g. the DoGet implementation on the client side now uses a peekable iterator instead of the messy circularly-dependent classes of before). - [x] Fix undefined behavior in zero-copy deserialization due to not handling "inlined" slices from gRPC - [x] Clean up the public API - [x] FlightDescriptor is not exposed to the server - [x] Unnecessary Begin/Open methods in some places - [x] API docs in Flight.proto - [x] More complete test suite to cover different usage patterns - [x] More comprehensive error handling/propagation of errors from the gRPC layer - [x] Fix not-yet-implemented parts of API - [ ] Look for other opportunities to share implementation between DoGet/DoPut/DoExchange Closes #6656 from lidavidm/doexchange Authored-by: David Li <li.davidm96@gmail.com> Signed-off-by: Wes McKinney <wesm+git@apache.org>