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.
33 lines
550 B
Protocol Buffer
33 lines
550 B
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option cc_generic_services = true;
|
|
|
|
package mesytec.mnode.proto;
|
|
|
|
service PingService {
|
|
rpc Ping(mesytec.mnode.proto.Ping) returns (Pong);
|
|
}
|
|
|
|
message Ping {
|
|
int32 peer_id = 1;
|
|
uint32 sequence_number = 2;
|
|
google.protobuf.Timestamp timestamp = 3;
|
|
}
|
|
|
|
message Pong {
|
|
int32 peer_id = 1;
|
|
uint32 sequence_number = 2;
|
|
}
|
|
service FooService {
|
|
rpc Foo(FooRequest) returns (FooResponse);
|
|
}
|
|
|
|
message FooRequest {
|
|
int32 foo_value = 1;
|
|
}
|
|
|
|
message FooResponse {
|
|
int32 bar_value = 1;
|
|
}
|