From 0151a9e1bdba3abb8b138b6198a114d8512cd22b Mon Sep 17 00:00:00 2001 From: alemidev Date: Wed, 13 Jul 2022 01:56:21 +0200 Subject: [PATCH] feat: defined some basic protocol Co-authored-by: f-tlm --- proto/buffer.proto | 22 ++++++++++++++++++++++ proto/core.proto | 15 --------------- proto/workspace.proto | 21 +++++++++++++++++++++ 3 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 proto/buffer.proto delete mode 100644 proto/core.proto create mode 100644 proto/workspace.proto diff --git a/proto/buffer.proto b/proto/buffer.proto new file mode 100644 index 0000000..fd626d5 --- /dev/null +++ b/proto/buffer.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; +package buffer; + +service Buffer { + rpc Attach (stream Operation) returns (stream Operation); +} + +message Operation { + int64 opId = 1; + + enum Action { + RETAIN = 0; + INSERT = 1; + DELETE = 2; + }; + Action action = 2; + + int32 row = 3; + int32 column = 4; + + optional string text = 5; +} diff --git a/proto/core.proto b/proto/core.proto deleted file mode 100644 index 2a28f46..0000000 --- a/proto/core.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; -package core; - -service Session { - rpc Create (SessionRequest) returns (SessionResponse); -} - -message SessionRequest { - int32 sessionId = 1; -} - -message SessionResponse { - int32 sessionId = 1; -} - diff --git a/proto/workspace.proto b/proto/workspace.proto new file mode 100644 index 0000000..17e789d --- /dev/null +++ b/proto/workspace.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; +package workspace; + +service Workspace { + rpc Create (SessionRequest) returns (SessionResponse); + rpc Join (SessionRequest) returns (SessionResponse); + rpc Sync (SessionRequest) returns (SessionResponse); + rpc Leave (SessionRequest) returns (SessionResponse); +} + +message SessionRequest { + string sessionKey = 1; + optional string content = 2; +} + +message SessionResponse { + string sessionKey = 1; + bool accepted = 2; + optional string hash = 3; + optional string content = 4; +}