diff --git a/include/transport/protocol.proto b/include/transport/protocol.proto new file mode 100644 index 0000000000000000000000000000000000000000..8370e617e2cc476debacf01e26120c69014463a4 --- /dev/null +++ b/include/transport/protocol.proto @@ -0,0 +1,138 @@ +package pbnetwork; + +enum StatusType { + STATUS_ONLINE = 0; + STATUS_AWAY = 1; + STATUS_FFC = 2; + STATUS_XA = 3; + STATUS_DND = 4; + STATUS_NONE = 5; + STATUS_INVISIBLE = 6; +} + +message Connected { + required string user = 1; +} + +message Disconnected { + required string user = 1; + required int32 error = 2; + optional string message = 3; +} + +message Login { + required string user = 1; + required string legacyName = 2; + required string password = 3; +} + +message Logout { + required string user = 1; + required string legacyName = 2; +} + +message Buddy { + required string userName = 1; + required string buddyName = 2; + optional string alias = 3; + optional string groups = 4; + optional StatusType status = 5; + optional string statusMessage = 6; + optional string iconHash = 7; + optional bool blocked = 8; +} + +message ConversationMessage { + required string userName = 1; + required string buddyName = 2; + required string message = 3; + optional string nickname = 4; + optional string xhtml = 5; +} + +message Room { + required string userName = 1; + required string nickname = 2; + required string room = 3; + optional string password = 4; +} + +message Participant { + required string userName = 1; + required string room = 2; + required string nickname = 3; + required int32 flag = 4; + required StatusType status = 5; + optional string statusMessage = 6; + optional string newname = 7; +} + +message VCard { + required string userName = 1; + required string buddyName = 2; + required int32 id = 3; + optional string fullname = 4; + optional string nickname = 5; + optional bytes photo = 6; +} + +message Status { + required string userName = 1; + required StatusType status = 3; + optional string statusMessage = 4; +} + +message Stats { + required int32 res = 1; + required int32 init_res = 2; + required int32 shared = 3; +} + +message File { + required string userName = 1; + required string buddyName = 2; + required string fileName = 3; + required int32 size = 4; + optional int32 ftID = 5; +} + +message FileTransferData { + required int32 ftID = 1; + required bytes data = 2; +} + +message WrapperMessage { + enum Type { + TYPE_CONNECTED = 1; + TYPE_DISCONNECTED = 2; + TYPE_LOGIN = 3; + TYPE_LOGOUT = 4; + TYPE_BUDDY_CHANGED = 6; + TYPE_BUDDY_REMOVED = 7; + TYPE_CONV_MESSAGE = 8; + TYPE_PING = 9; + TYPE_PONG = 10; + TYPE_JOIN_ROOM = 11; + TYPE_LEAVE_ROOM = 12; + TYPE_PARTICIPANT_CHANGED = 13; + TYPE_ROOM_NICKNAME_CHANGED = 14; + TYPE_ROOM_SUBJECT_CHANGED = 15; + TYPE_VCARD = 16; + TYPE_STATUS_CHANGED = 17; + TYPE_BUDDY_TYPING = 18; + TYPE_BUDDY_STOPPED_TYPING = 19; + TYPE_BUDDY_TYPED = 20; + TYPE_AUTH_REQUEST = 21; + TYPE_ATTENTION = 22; + TYPE_STATS = 23; + TYPE_FT_START = 24; + TYPE_FT_FINISH = 25; + TYPE_FT_DATA = 26; + TYPE_FT_PAUSE = 27; + TYPE_FT_CONTINUE = 28; + TYPE_EXIT = 29; + } + required Type type = 1; + optional bytes payload = 2; +} +; \ No newline at end of file