diff options
-rw-r--r-- | protocol/udm.proto | 119 |
1 files changed, 76 insertions, 43 deletions
diff --git a/protocol/udm.proto b/protocol/udm.proto index dd23368..d792a22 100644 --- a/protocol/udm.proto +++ b/protocol/udm.proto @@ -75,24 +75,93 @@ message client_download_ui_data_request { //ui common proto part end -//TOOD: extended ui updates subscriptions proto part (ui data messages on timer, e.t.c.) +//TODO: extended ui updates subscriptions proto part (ui data messages on timer, e.t.c.) -//ui subscriptions begin +// event subscription part begin + +//TODO: rework +//TODO: download state chage events -message download_ui_subscription_info { + +message subscription_download_ui_info { optional client_download_ui_data_request download_ui_data = 1; optional bool one_shot = 3 [default = false]; required int64 interval = 4; } -message download_ui_unsubscription_info { - required int32 id = 1; //unsubscript from all updates for given id's +message unsubscription_download_ui_info { + required int32 id = 1; //ui element id +} + + +//subscription type +enum SUBSCRIPTION_TYPE { + S_UI_CHANGE = 0; + S_SETTING_CHANGE = 1; + S_DOWNLOAD_STATE_CHANGE = 2; + S_DOWNLOAD_ADDED = 3; + S_DOWNLOAD_DELETED = 4; +} + +//download state subscription for download state changes (can be module defined) +enum SUBSCRIPTION_DOWNLOAD_STATE { + S_D_STARTED = 0; + S_D_STOPPED = 1; +} + +message subscription_download_state_change { + repeated SUBSCRIPTION_DOWNLOAD_STATE states = 1; +} + +//information about subscription request +message client_event_subscription_request { + required SUBSCRIPTION_TYPE type = 1; //type must be set + required string module_name = 2; //module name must be set, can be "" for all installed modules supported subscription type + optional subscription_download_ui_info download_ui_info = 3; + optional subscription_download_state_change download_state_change = 4; +} + + +//unsubscript from events of specified type +//here is two variants of unsubscription + +//1. can be customized to unsubscript from few aubscriptions at once +message client_event_unsubscription_request { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional unsubscription_download_ui_info ui_info = 3; + optional subscription_download_state_change download_state_change = 4; //reusing defined structure to avoid code duplication +} + +//2. unsubscript by id given in "server_event_subscription_reply" +message client_event_unsubscription_by_id_request { + required int32 subscription_id = 1; } -//ui subscriptions end +message server_event_subscription_reply { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional subscription_download_ui_info ui_info = 3; + + required bool status = 1000; + optional string status_description = 1001; + optional int32 subscription_id = 1002 [default = -1]; +} + +message server_event_unsubscription_reply { + required SUBSCRIPTION_TYPE type = 1; + required string module_name = 2; + optional unsubscription_download_ui_info ui_info = 3; + + required bool status = 1000; + optional string status_description = 1001; + optional int32 subscription_id = 1002; +} + +//event subscription part end + -//TODO: downloads related proto part //dowloads proto part begin @@ -164,42 +233,6 @@ message server_download_reply { //downloads proto part end -// event subscription part begin -enum SUBSCRIPTION_TYPE { - SUBSCRIPTION_UI_CHANGE = 0; - SUBSCRIPTION_SETTING_CHANGE = 1; -} - -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 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 //TODO: settings: |