diff options
Diffstat (limited to 'protocol')
-rw-r--r-- | protocol/udm.proto | 150 |
1 files changed, 118 insertions, 32 deletions
diff --git a/protocol/udm.proto b/protocol/udm.proto index 1ecb076..44f805c 100644 --- a/protocol/udm.proto +++ b/protocol/udm.proto @@ -32,26 +32,33 @@ enum MODULE_UI_ELEMENT_TYPE { UI_GROUP = 5; //empty ui element to group children together in ui (tabs can be implemented using this type) } -message module_ui_element_info { +message module_download_ui_element_info { optional MODULE_UI_ELEMENT_TYPE type = 1 [default = UI_EMPTY]; - repeated module_ui_element_info children = 2; + repeated module_download_ui_element_info children = 2; required string id = 3; //internal element id used to get element value (should be unique for every loaded module) optional string name = 4 [default = "not set"]; //can be non unique } -message server_ui_element_data { - required string id = 1; //should be unique for every loaded module + +message module_download_ui_element_data { + required string ui_id = 1; //should be unique for every loaded module required string data = 2; } -message server_ui_data_reply { +message module_download_ui_data { + repeated module_download_ui_element_data data = 1; + required string download_id = 2; +} + +message server_download_ui_data_reply { required string module_name = 1; - repeated server_ui_element_data data = 2; + required module_download_ui_data data = 2; } -message client_ui_data_request { +message client_download_ui_data_request { required string module_name = 1; - repeated string id = 2; //should be unique for for every loaded module + required string download_id = 2; + repeated string ui_id = 3; //should be unique for for every loaded module } @@ -61,36 +68,91 @@ message client_ui_data_request { //ui subscriptions begin -message ui_subscription_info_requiest { - required string module_name = 1; - repeated string id = 2; +message download_ui_subscription_info { + optional client_download_ui_data_request download_ui_data = 1; optional bool one_shot = 3 [default = false]; required int64 interval = 4; } -message ui_unsubscription_info { - repeated string id = 1; //unsubscript from all updates for given id's +message download_ui_unsubscription_info { + required string id = 1; //unsubscript from all updates for given id's } //ui subscriptions end +//TODO: downloads related proto part + +//dowloads proto part begin + +message client_download_request { + required string id = 1; + optional bool with_content = 2 [default = false]; +} + +enum DOWNLOAD_CONTENT_ENTRY_TYPE { + DOWNLOAD_CONTENT_ENTRY_TYPE_FILE = 0; + DOWNLOAD_CONTENT_ENTRY_TYPE_DIRECTORY = 1; +} + +message download_content_entry { + required string name = 1; + optional DOWNLOAD_CONTENT_ENTRY_TYPE type = 2 [default = DOWNLOAD_CONTENT_ENTRY_TYPE_FILE]; + repeated download_content_entry children = 3; + optional int64 size = 4 [default = 0]; +} + + +message download { + required string id = 1; + required string name = 2; + optional download_content_entry content = 3; + required int64 size = 4; + required int64 downloaded = 5; +} + +message server_downloads_reply { + required download download = 1; +} + + +//downloads proto part end + // event subscription part begin enum SUBSCRIPTION_TYPE { SUBSCRIPTION_UI_CHANGE = 0; SUBSCRIPTION_SETTING_CHANGE = 1; } -message event_subscription_info { - repeated SUBSCRIPTION_TYPE type = 1; //subscript to one ore more event type - optional ui_subscription_info_requiest ui_info = 2; +message client_event_subscription_request { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional download_ui_subscription_info download_ui_info = 3; } -message event_unsubscription_info { - repeated SUBSCRIPTION_TYPE type = 1; //unsubscript from one ore more event type - optional ui_unsubscription_info ui_info = 2; +message client_event_unsubscription_request { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional download_ui_unsubscription_info ui_info = 3; } +message server_event_subscription_reply { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional download_ui_subscription_info ui_info = 3; + + required bool status = 10; + optional string status_description = 11; +} + +message server_event_unsubscription_reply { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional download_ui_unsubscription_info ui_info = 3; + + required bool status = 10; + optional string status_description = 11; +} //event subscription part end @@ -117,17 +179,23 @@ message setting { //settings common proto part end -//TODO: settings transfer proto part (read, write, notifications ?) //module related messages begin +enum SERVER_MODULE_TYPE { + SERVER_MODULE_CORE = 0; + SERVER_MODULE_DOWNLOADER = 1; + SERVER_MODULE_METADATA_STORAGE = 2; +} + message module_info { - required string name = 1; //unique (used as module id) - required string version = 2; - optional string decription = 3 [default = "no description specified"]; - repeated setting_info settings = 4; //may be ampty - repeated module_ui_element_info ui = 5; //always complete here + required SERVER_MODULE_TYPE type = 1; + required string name = 2; //unique (used as module id) + required string version = 3; + optional string decription = 4 [default = "no description specified"]; + repeated setting_info settings = 5; //may be ampty + repeated module_download_ui_element_info ui = 6; //always complete here } //module related messages end @@ -142,12 +210,12 @@ enum PASSWD_HASH_TYPE { HASH_SHA512 = 3; } -message client_auth_info { +message client_auth_request { required bytes password = 1; optional PASSWD_HASH_TYPE hash_type = 2 [default = HASH_NONE]; } -message server_auth_info { +message server_auth_reply { required bool status = 1; //true == success, false == error optional string auth_token = 2; //must be set if no error optional string error_description = 3; //readable description must be set on error @@ -155,7 +223,7 @@ message server_auth_info { //auth proto part end -//TODO: datatransfer proto part +//TODO: large datatransfer proto part // it should be in separate connection // it should be very simple // it should have as small overhead as possible, better none at all @@ -177,13 +245,21 @@ enum CLIENT_MSG_TYPE { CLIENT_AUTH_REQUEST = 0; CLIENT_DATA_TRANSFER_REQUEST = 1; CLIENT_UI_DATA_REQUEST = 2; + CLIENT_MODULES_REQUEST = 3; + CLIENT_CORE_SETTINGS_REQUEST = 4; + CLIENT_SUBSCRIPTIONS_REQUEST = 5; + CLIENT_UNSUBSCRIPTIONS_REQUEST = 6; + CLIENT_DOWNLOADS_LIST_REQUEST = 7; } message client_msg { required CLIENT_MSG_TYPE type = 1; optional string auth_token = 2; //this must be set in all message type's except CLIENT_AUTH_REQUEST - optional client_auth_info auth_info = 3; - optional client_ui_data_request ui_data_request = 4; + optional client_auth_request auth_request = 3; + repeated client_download_ui_data_request download_ui_data_request = 4; + repeated client_event_subscription_request subscription_request = 5; + repeated client_event_unsubscription_request unsubscription_request = 6; + repeated client_download_request downloads_request = 7; } @@ -191,14 +267,24 @@ message client_msg { enum SERVER_MSG_TYPE { SERVER_AUTH_REPLY = 0; SERVER_UI_DATA_REPLY = 1; + SERVER_MODULES_REPLY = 2; + SERVER_CORE_SETTINGS_REPLY = 3; + SERVER_SUBSCRIPTIONS_REPLY = 4; + SERVER_UNSUBSCRIPTIONS_REPLY = 5; + SERVER_DOWNLOADS_LIST_REPLY = 6; } message server_msg { required SERVER_MSG_TYPE type = 1; - optional server_ui_data_reply ui_data_reply = 2; - optional server_auth_info auth_reply = 3; + optional server_download_ui_data_reply download_ui_data_reply = 2; + optional server_auth_reply auth_reply = 3; + repeated module_info server_modules_reply = 4; + optional module_info server_core_settings_reply = 5; + repeated server_event_subscription_reply subscription_reply = 6; + repeated server_event_unsubscription_reply unsubscription_reply = 7; + optional server_downloads_reply downloads = 8; } //top level messages end |