diff --git a/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto b/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto --- a/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto +++ b/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto @@ -22,7 +22,7 @@ rpc Get(GetRequest) returns (stream GetResponse) {} // Replacing Send and Get with a single bidirectional streaming RPC - rpc OpenStream(stream OutboundMessage) returns (stream InboundMessage) {} + rpc MessagesStream(stream MessageToTunnelbroker) returns (stream MessageToClient) {} } // Session @@ -76,19 +76,53 @@ repeated string blobHashes = 3; } -message OutboundMessage { - string toDeviceID = 1; - string payload = 2; - repeated string blobHashes = 3; +// Common messages structures for the MessagesStream + +message ProcessedMessages { + repeated string messageID = 1; } -message InboundMessage { - string fromDeviceID = 1; - string fromConnectionID = 2; +// The messages from the Client to the Tunnelbroker + +message MessageToTunnelbrokerStruct { + string messageID = 1; + string toDeviceID = 2; string payload = 3; repeated string blobHashes = 4; } +message MessagesToSend { + repeated MessageToTunnelbrokerStruct messages = 1; +} + +message MessageToTunnelbroker { + string sessionID = 1; + oneof data { + MessagesToSend messagesToSend = 2; + ProcessedMessages processedMessages = 3; + } +} + +// The messages from the Tunnelbroker to the Client + +message MessageToClientStruct { + string messageID = 1; + string fromDeviceID = 2; + string payload = 3; + repeated string blobHashes = 4; +} + +message MessagesToDeliver { + repeated MessageToClientStruct messages = 1; +} + +message MessageToClient { + oneof data { + MessagesToDeliver messagesToDeliver = 1; + ProcessedMessages processedMessages = 2; + } +} + // Old API structures enum CheckResponseType {