forked from BigfootDev/flatbuffers
* Keep methods with struct name and switch them to default This PR can help fix the following two issues: 1): A set of simplified API (without struct name) was added in https://github.com/google/flatbuffers/pull/6336. It causes name conflict when merging all generated python file into a single one (the primary usage senario in Google). 2): Flatbuffers 2.0 generates absolute import path, which may cause name space conflicts. See more details in https://github.com/google/flatbuffers/issues/5840. The solution for both is to generate the merged Python code, similar C++. The merged code will not contain the simplied API, but only the method with struct name. For issue (1), it will mimic the exactly usage pattern for Google internal. For issue (2), users can generate the merged flatbuffer code, without worrying about the imports. The above idea will be implemented in the following steps: Step 1 (this PR): revert changes in https://github.com/google/flatbuffers/pull/6336 that set the simplified API as default. Remove statements that the original API will be deprecated, and reset the original API as default. Step 2 (the following PR): create a flag to generate the merged code. The Simplified API will be removed from the merged code, otherwise it will cause name conflict. * Update the generated sample code * Update the generated example code * Reverst the changes of GetRootAs * Update examples from grpc/example/generate.sh
GRPC implementation and test
NOTE: files in src/ are shared with the GRPC project, and maintained there
(any changes should be submitted to GRPC instead). These files are copied
from GRPC, and work with both the Protobuf and FlatBuffers code generator.
tests/ contains a GRPC specific test, you need to have built and installed
the GRPC libraries for this to compile. This test will build using the
FLATBUFFERS_BUILD_GRPCTEST option to the main FlatBuffers CMake project.
Building Flatbuffers with gRPC
Linux
- Download, build and install gRPC. See instructions.
- Lets say your gRPC clone is at
/your/path/to/grpc_repo. - Install gRPC in a custom directory by running
make install prefix=/your/path/to/grpc_repo/install.
- Lets say your gRPC clone is at
export GRPC_INSTALL_PATH=/your/path/to/grpc_repo/installexport PROTOBUF_DOWNLOAD_PATH=/your/path/to/grpc_repo/third_party/protobufmkdir build ; cd buildcmake -DFLATBUFFERS_BUILD_GRPCTEST=ON -DGRPC_INSTALL_PATH=${GRPC_INSTALL_PATH} -DPROTOBUF_DOWNLOAD_PATH=${PROTOBUF_DOWNLOAD_PATH} ..make
For Bazel users:
$bazel test src/compiler/...
Running FlatBuffer gRPC tests
Linux
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${GRPC_INSTALL_PATH}/libmake test ARGS=-V
For Bazel users:
$bazel test tests/...