Open mejohnnaylor opened 7 months ago
"full metal" protobuf provides reflection and JSON serialization.
MessageLite protobuf doesn't.
Probably need a Lite and Full-Metal version of the SDK.
"Reflection" in this context indicates the ability of a GRPC client (such as grpc_cli) to query a gRPC service for it's service definition.
e.g.
$ ./grpc_cli ls localhost:5255 -l filename: service.proto package: catena; service CatenaService { rpc DeviceRequest(catena.DeviceRequestPayload) returns (stream catena.DeviceComponent) {} rpc ExecuteCommand(stream catena.ExecuteCommandPayload) returns (stream catena.CommandResponse) {} rpc ExternalObjectRequest(catena.ExternalObjectRequestPayload) returns (stream catena.ExternalObjectPayload) {} rpc BasicParamInfoRequest(catena.BasicParamInfoRequestPayload) returns (stream catena.BasicParamInfoResponse) {} rpc SetValue(catena.SetValuePayload) returns (google.protobuf.Empty) {} rpc GetValue(catena.GetValuePayload) returns (catena.Value) {} rpc MultiSetValue(catena.MultiSetValuePayload) returns (google.protobuf.Empty) {} rpc UpdateSubscriptions(catena.UpdateSubscriptionsPayload) returns (stream catena.DeviceComponent.ComponentParam) {} rpc GetParam(catena.GetParamPayload) returns (stream catena.DeviceComponent.ComponentParam) {} rpc Connect(catena.ConnectPayload) returns (stream catena.PushUpdates) {} rpc AddLanguage(catena.AddLanguagePayload) returns (catena.GeneralResponse) {} rpc LanguagePackRequest(catena.LanguagePackRequestPayload) returns (catena.DeviceComponent.ComponentLanguagePack) {} rpc ListLanguages(catena.GeneralRequest) returns (catena.LanguageList) {} } filename: src/proto/grpc/reflection/v1/reflection.proto package: grpc.reflection.v1; service ServerReflection { rpc ServerReflectionInfo(stream grpc.reflection.v1.ServerReflectionRequest) returns (stream grpc.reflection.v1.ServerReflectionResponse) {} } filename: src/proto/grpc/reflection/v1alpha/reflection.proto package: grpc.reflection.v1alpha; service ServerReflection { rpc ServerReflectionInfo(stream grpc.reflection.v1alpha.ServerReflectionRequest) returns (stream grpc.reflection.v1alpha.ServerReflectionResponse) {} }
will list out the service at localhost:5055, complete with message types.
"full metal" protobuf provides reflection and JSON serialization.
MessageLite protobuf doesn't.
Probably need a Lite and Full-Metal version of the SDK.
"Reflection" in this context indicates the ability of a GRPC client (such as grpc_cli) to query a gRPC service for it's service definition.
e.g.
will list out the service at localhost:5055, complete with message types.