summaryrefslogtreecommitdiff
path: root/protocol/udm.proto
diff options
context:
space:
mode:
Diffstat (limited to 'protocol/udm.proto')
-rw-r--r--protocol/udm.proto150
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