mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-12-27 00:19:25 -05:00
Changes to RPC protocol.
- Adding first pass at defining stream protocol. - Added ADD/REMOVE peer Command, tweaked other parameters / response msgs too. git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-rpc-b1@6147 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
e1e040c3eb
commit
021713f548
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
EXEC = protoc
|
EXEC = protoc
|
||||||
#PROTO = core.proto peers.proto system.proto chat.proto search.proto files.proto gxs.proto msgs.proto
|
#PROTO = core.proto peers.proto system.proto chat.proto search.proto files.proto stream.proto gxs.proto msgs.proto
|
||||||
PROTO = core.proto peers.proto system.proto chat.proto search.proto files.proto
|
PROTO = core.proto peers.proto system.proto chat.proto search.proto files.proto stream.proto
|
||||||
|
|
||||||
PROTOPATH = ./definition
|
PROTOPATH = ./definition
|
||||||
#CDESTPATH = ./gencc
|
#CDESTPATH = ./gencc
|
||||||
|
@ -17,9 +17,10 @@ enum PackageId {
|
|||||||
CHAT = 3;
|
CHAT = 3;
|
||||||
SEARCH = 4;
|
SEARCH = 4;
|
||||||
FILES = 5;
|
FILES = 5;
|
||||||
|
STREAM = 6;
|
||||||
|
|
||||||
// BELOW HERE IS STILL BEING DESIGNED.
|
// BELOW HERE IS STILL BEING DESIGNED.
|
||||||
//MSGS = 5;
|
//MSGS = 7;
|
||||||
//TRANSFER = 6;
|
|
||||||
|
|
||||||
// THEORETICAL ONES.
|
// THEORETICAL ONES.
|
||||||
GXS = 1000;
|
GXS = 1000;
|
||||||
@ -111,6 +112,14 @@ message Dir {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
message Timestamp {
|
||||||
|
required uint64 secs = 1;
|
||||||
|
required uint32 microsecs = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
// System Status
|
// System Status
|
||||||
|
|
||||||
|
@ -9,13 +9,12 @@ import "core.proto";
|
|||||||
enum RequestMsgIds {
|
enum RequestMsgIds {
|
||||||
MsgId_RequestPeers = 1;
|
MsgId_RequestPeers = 1;
|
||||||
MsgId_RequestAddPeer = 2;
|
MsgId_RequestAddPeer = 2;
|
||||||
MsgId_RequestModifyPeer = 3;
|
MsgId_RequestExaminePeer = 3;
|
||||||
|
MsgId_RequestModifyPeer = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ResponseMsgIds {
|
enum ResponseMsgIds {
|
||||||
MsgId_ResponsePeerList = 1;
|
MsgId_ResponsePeerList = 1;
|
||||||
MsgId_ResponseAddPeer = 2;
|
|
||||||
MsgId_ResponseModifyPeer = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
@ -44,7 +43,7 @@ message RequestPeers {
|
|||||||
|
|
||||||
required SetOption set = 1;
|
required SetOption set = 1;
|
||||||
required InfoOption info = 2;
|
required InfoOption info = 2;
|
||||||
repeated string gpg_ids = 3;
|
repeated string pgp_ids = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -60,22 +59,31 @@ message ResponsePeerList {
|
|||||||
message RequestAddPeer {
|
message RequestAddPeer {
|
||||||
|
|
||||||
enum AddCmd {
|
enum AddCmd {
|
||||||
NOOP = 0; // No op.
|
|
||||||
ADD = 1; // Add existing from gpg_id.
|
ADD = 1; // Add existing from gpg_id.
|
||||||
REMOVE = 2; // Remove existing from gpg_id.
|
REMOVE = 2; // Remove existing from gpg_id.
|
||||||
|
}
|
||||||
|
|
||||||
|
required AddCmd cmd = 1;
|
||||||
|
required string pgp_id = 2;
|
||||||
|
optional string ssl_id = 3;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// REQUEST: RequestExaminePeer
|
||||||
|
message RequestExaminePeer {
|
||||||
|
|
||||||
|
enum ExamineCmd {
|
||||||
IMPORT = 3; // Import from cert, with gpg_id.
|
IMPORT = 3; // Import from cert, with gpg_id.
|
||||||
EXAMINE = 4; // Examine cert, but no action.
|
EXAMINE = 4; // Examine cert, but no action.
|
||||||
}
|
}
|
||||||
|
|
||||||
required string gpg_id = 1;
|
// Must have GPG ID to import. Proves you've looked at it.
|
||||||
required AddCmd cmd = 2;
|
required string pgp_id = 1;
|
||||||
optional string cert = 3;
|
required ExamineCmd cmd = 2;
|
||||||
}
|
required string cert = 3;
|
||||||
|
|
||||||
// RESPONSE: ResponseAddPeer
|
|
||||||
message ResponseAddPeer {
|
|
||||||
required rsctrl.core.Status status = 1;
|
|
||||||
repeated rsctrl.core.Person peers = 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
@ -98,11 +106,5 @@ message RequestModifyPeer {
|
|||||||
repeated rsctrl.core.Person peers = 2;
|
repeated rsctrl.core.Person peers = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// RESPONSE: ResponseModifyPeer
|
|
||||||
message ResponseModifyPeer {
|
|
||||||
required rsctrl.core.Status status = 1;
|
|
||||||
repeated rsctrl.core.Person peers = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
152
rsctrl/src/definition/stream.proto
Normal file
152
rsctrl/src/definition/stream.proto
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
package rsctrl.stream;
|
||||||
|
|
||||||
|
import "core.proto";
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
// This protocol defines how to stream data from retroshare.
|
||||||
|
// It can be used for VoIP or Files, or whatever.
|
||||||
|
//
|
||||||
|
// There are two parts.
|
||||||
|
// Control and actual streaming.
|
||||||
|
//
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
enum RequestMsgIds {
|
||||||
|
MsgId_RequestStartFileStream = 1;
|
||||||
|
MsgId_RequestControlStream = 2;
|
||||||
|
MsgId_RequestListStreams = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum ResponseMsgIds {
|
||||||
|
MsgId_ResponseStreamDetail = 1; // RESPONSE to
|
||||||
|
MsgId_StreamData = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Building Blocks
|
||||||
|
|
||||||
|
enum StreamType {
|
||||||
|
STREAM_TYPE_ALL = 1; // all streams
|
||||||
|
STREAM_TYPE_FILES = 2; // files stream
|
||||||
|
STREAM_TYPE_VOIP = 3; // VoIP stream
|
||||||
|
STREAM_TYPE_OTHER = 4; // Who knows what else.
|
||||||
|
}
|
||||||
|
|
||||||
|
enum StreamState {
|
||||||
|
STREAM_STATE_ERROR = 0;
|
||||||
|
STREAM_STATE_RUN = 1;
|
||||||
|
STREAM_STATE_PAUSED = 2;
|
||||||
|
STREAM_TYPE_FINISHED = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
message StreamFileDetail {
|
||||||
|
|
||||||
|
required rsctrl.core.File file = 1;
|
||||||
|
required uint64 offset = 5;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message StreamVoipDetail {
|
||||||
|
|
||||||
|
// THIS NEEDS MORE DEFINITION.
|
||||||
|
required string peerId = 1;
|
||||||
|
required uint64 duration = 2;
|
||||||
|
required uint64 offset = 3;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message StreamDesc {
|
||||||
|
|
||||||
|
required uint32 stream_id = 1;
|
||||||
|
required StreamType stream_type = 2;
|
||||||
|
required StreamState stream_state = 3;
|
||||||
|
required float rate_kBs = 4;
|
||||||
|
optional StreamFileDetail file = 5;
|
||||||
|
optional StreamVoipDetail voip = 6;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
message StreamData {
|
||||||
|
|
||||||
|
required uint32 stream_id = 1;
|
||||||
|
required StreamState stream_state = 2;
|
||||||
|
required rsctrl.core.Timestamp send_time = 3;
|
||||||
|
required uint64 offset = 4;
|
||||||
|
required uint32 size = 5;
|
||||||
|
required bytes stream_data = 6;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
// REQUEST: RequestStartFileStream
|
||||||
|
message RequestStartFileStream {
|
||||||
|
|
||||||
|
required rsctrl.core.File file = 1;
|
||||||
|
required float rate_kBs = 2;
|
||||||
|
|
||||||
|
// byte range. allows to restart transfer!
|
||||||
|
optional uint64 startByte = 3;
|
||||||
|
optional uint64 endByte = 4;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// RESPONSE: ResponseStreamDetail
|
||||||
|
message ResponseStreamDetail {
|
||||||
|
|
||||||
|
required rsctrl.core.Status status = 1;
|
||||||
|
repeated StreamDesc streams = 2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// REQUEST: RequestControlStream
|
||||||
|
message RequestControlStream {
|
||||||
|
|
||||||
|
enum StreamAction {
|
||||||
|
STREAM_START = 1; // start stream
|
||||||
|
STREAM_STOP = 2; // stop stream
|
||||||
|
STREAM_PAUSE = 3; // pause stream
|
||||||
|
STREAM_CHANGE_RATE = 4; // rate of the stream
|
||||||
|
STREAM_SEEK = 5; // move streaming position.
|
||||||
|
}
|
||||||
|
|
||||||
|
required uint32 stream_id = 1;
|
||||||
|
required StreamAction action = 2;
|
||||||
|
optional float rate_kBs = 3;
|
||||||
|
optional int64 seek_byte = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// REQUEST: RequestListStreams
|
||||||
|
message RequestListStreams {
|
||||||
|
|
||||||
|
required StreamType request_type = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// RESPONSE: ResponseStreamData
|
||||||
|
message ResponseStreamData {
|
||||||
|
required rsctrl.core.Status status = 1;
|
||||||
|
required StreamData data = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
Loading…
Reference in New Issue
Block a user