The code requires cc_generic_services = true in the service proto files. nng_msg payload is: request format : size:u32 + serialized MethodCall response format: size:u32 + serialized MethodCallResponse Dispatch is done using descriptors, message prototypes and protobuf.Any. Error handling is missing apart from error logging.
22 lines
619 B
CMake
22 lines
619 B
CMake
find_package(Protobuf REQUIRED)
|
|
|
|
set(MNODE_PROTOS
|
|
google/rpc/status.proto
|
|
google/rpc/error_details.proto
|
|
google/rpc/code.proto
|
|
mrpc.proto
|
|
mvlc.proto
|
|
service.proto
|
|
vme.proto
|
|
)
|
|
|
|
add_library(mnode-proto ${MNODE_PROTOS})
|
|
target_link_libraries(mnode-proto PUBLIC protobuf::libprotobuf)
|
|
|
|
target_include_directories(mnode-proto
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/>
|
|
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../>)
|
|
|
|
protobuf_generate(TARGET mnode-proto)
|
|
protobuf_generate_python(PROTO_PY ${MNODE_PROTOS})
|
|
add_custom_target(mnode-proto-py ALL DEPENDS ${PROTO_PY})
|