diff --git a/proto/buffer.proto b/proto/buffer.proto index fd626d5..8e3b3a3 100644 --- a/proto/buffer.proto +++ b/proto/buffer.proto @@ -3,6 +3,8 @@ package buffer; service Buffer { rpc Attach (stream Operation) returns (stream Operation); + rpc Push (BufferPayload) returns (BufferResponse); + rpc Pull (BufferPayload) returns (BufferPayload); } message Operation { @@ -20,3 +22,15 @@ message Operation { optional string text = 5; } + +message BufferPayload { + string sessionKey = 1; + string path = 2; + optional string content = 3; +} + +message BufferResponse { + string sessionKey = 1; + string path = 2; + bool accepted = 3; +} diff --git a/proto/session.proto b/proto/session.proto index 3a8f160..69e9890 100644 --- a/proto/session.proto +++ b/proto/session.proto @@ -8,7 +8,7 @@ service Session { } message SessionRequest { - optional string sessionKey = 1; + string sessionKey = 1; } message SessionResponse { diff --git a/proto/workspace.proto b/proto/workspace.proto index a0c32b9..7691444 100644 --- a/proto/workspace.proto +++ b/proto/workspace.proto @@ -2,26 +2,20 @@ syntax = "proto3"; package workspace; service Workspace { - rpc Buffers (WorkspaceRequest) returns (BufferList); - rpc Push (BufferPayload) returns (WorkspaceResponse); - rpc Pull (BufferPayload) returns (BufferPayload); + rpc Subscribe (WorkspaceRequest) returns (stream Event); + rpc Buffers (WorkspaceRequest) returns (BufferList); +} + +message Event { + int32 id = 1; + optional string body = 2; } message WorkspaceRequest { string sessionKey = 1; } -message WorkspaceResponse { - string sessionKey = 1; - bool accepted = 2; -} - message BufferList { repeated string path = 1; } -message BufferPayload { - string sessionKey = 1; - string path = 2; - optional string content = 3; -}