Commits


David Li authored and Wes McKinney committed d1848c85864
ARROW-6855: [FlightRPC][C++][Python] Flight middleware for C++/Python This is likely not fully compatible with Java yet (I'm aware of one edge case where gRPC-Java does something different than gRPC-C++) - will address in a follow up with integration testing ([ARROW-5875](https://issues.apache.org/jira/browse/ARROW-5875)). Compared to the Java implementation, this one can make guarantees about which thread things are run on (so you can and must use thread-locals to communicate with application code from middleware). This uses the experimental gRPC interceptor interface to implement client middleware. Travis build: https://travis-ci.com/lihalite/arrow/builds/129755428 AppVeyor build: https://ci.appveyor.com/project/lihalite/arrow/builds/27777244 Closes #5552 from lihalite/flight-middleware-cpp and squashes the following commits: 03921d455 <David Li> Fix warnings/tests 69505a8db <David Li> Update middleware example 564783797 <David Li> Require headers to be ASCII e47d1709f <David Li> Don't rely on thread locals for server middleware f6d314bd1 <David Li> Remove unnecessary files d036c74d5 <David Li> Get rid of header iterator 7716ade3b <David Li> Address review feedback 99cf60f19 <David Li> Fix Flight tests on Windows 362341ef2 <David Li> Fix lints 65459ad97 <David Li> Add middleware to Flight docs 0be4009db <David Li> Fix Python TLS test 9e23952b9 <David Li> Fix Python middleware a1d9b5da7 <David Li> Add example of Flight/Python middleware 260deb84b <David Li> Rework C++ client middleware to require infallability 530e6fcc8 <David Li> Rework C++ middleware to require infalliability 53646bc6c <David Li> ARROW-6074: Flight middleware Authored-by: David Li <li.davidm96@gmail.com> Signed-off-by: Wes McKinney <wesm+git@apache.org>