diff --git a/apps/iot/include/message_pb.hrl b/apps/iot/include/message_pb.hrl index fce8f94..9698fbb 100644 --- a/apps/iot/include/message_pb.hrl +++ b/apps/iot/include/message_pb.hrl @@ -23,8 +23,7 @@ -define('AUTH_REPLY_PB_H', true). -record(auth_reply, {code = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - message = <<>> :: unicode:chardata() | undefined, % = 2, optional - repository_url = <<>> :: unicode:chardata() | undefined % = 3, optional + message = <<>> :: unicode:chardata() | undefined % = 2, optional }). -endif. @@ -35,28 +34,55 @@ }). -endif. --ifndef('SESSION_REQUEST_PB_H'). --define('SESSION_REQUEST_PB_H', true). --record(session_request, - { +-ifndef('DEPLOY_PB_H'). +-define('DEPLOY_PB_H', true). +-record(deploy, + {task_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits + service_id = <<>> :: unicode:chardata() | undefined, % = 2, optional + tar_url = <<>> :: unicode:chardata() | undefined % = 3, optional }). -endif. --ifndef('SESSION_REPLY_PB_H'). --define('SESSION_REPLY_PB_H', true). --record(session_reply, - {a = false :: boolean() | 0 | 1 | undefined % = 1, optional +-ifndef('EFKA_RESPONSE_PB_H'). +-define('EFKA_RESPONSE_PB_H', true). +-record(efka_response, + {code = 0 :: integer() | undefined, % = 1, optional, 32 bits + result = <<>> :: unicode:chardata() | undefined, % = 2, optional + message = <<>> :: unicode:chardata() | undefined % = 3, optional + }). +-endif. + +-ifndef('TOPIC_MESSAGE_PB_H'). +-define('TOPIC_MESSAGE_PB_H', true). +-record(topic_message, + {topic = <<>> :: unicode:chardata() | undefined, % = 1, optional + content = <<>> :: unicode:chardata() | undefined % = 2, optional + }). +-endif. + +-ifndef('SERVICE_PARAMS_PB_H'). +-define('SERVICE_PARAMS_PB_H', true). +-record(service_params, + {service_id = <<>> :: unicode:chardata() | undefined, % = 1, optional + params = <<>> :: unicode:chardata() | undefined, % = 2, optional + timeout = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits + }). +-endif. + +-ifndef('SERVICE_METRICS_PB_H'). +-define('SERVICE_METRICS_PB_H', true). +-record(service_metrics, + {service_id = <<>> :: unicode:chardata() | undefined, % = 1, optional + metrics = <<>> :: unicode:chardata() | undefined, % = 2, optional + timeout = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits }). -endif. -ifndef('DATA_PB_H'). -define('DATA_PB_H', true). -record(data, - {device_uuid = <<>> :: unicode:chardata() | undefined, % = 1, optional - service_name = <<>> :: unicode:chardata() | undefined, % = 2, optional - at = 0 :: integer() | undefined, % = 3, optional, 32 bits - tags = [] :: [{unicode:chardata(), unicode:chardata()}] | undefined, % = 4 - fields = [] :: [iodata()] | undefined % = 5, repeated + {service_id = <<>> :: unicode:chardata() | undefined, % = 1, optional + metric = <<>> :: unicode:chardata() | undefined % = 2, optional }). -endif. @@ -75,66 +101,44 @@ cpu_temperature = 0.0 :: float() | integer() | infinity | '-infinity' | nan | undefined, % = 10, optional disk = [] :: [integer()] | undefined, % = 11, repeated, 32 bits memory = [] :: [integer()] | undefined, % = 12, repeated, 32 bits - interfaces = [] :: [iodata()] | undefined % = 13, repeated + interfaces = <<>> :: unicode:chardata() | undefined % = 13, optional }). -endif. -ifndef('SERVICE_INFORM_PB_H'). -define('SERVICE_INFORM_PB_H', true). -record(service_inform, - {name = <<>> :: unicode:chardata() | undefined, % = 1, optional + {service_id = <<>> :: unicode:chardata() | undefined, % = 1, optional props = <<>> :: unicode:chardata() | undefined, % = 2, optional - version = <<>> :: unicode:chardata() | undefined, % = 3, optional - version_copy = <<>> :: unicode:chardata() | undefined, % = 4, optional - status = 0 :: non_neg_integer() | undefined, % = 5, optional, 32 bits - at = 0 :: non_neg_integer() | undefined % = 6, optional, 32 bits + status = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits + timestamp = 0 :: non_neg_integer() | undefined % = 4, optional, 32 bits }). -endif. --ifndef('FEEDBACK_STEP_PB_H'). --define('FEEDBACK_STEP_PB_H', true). --record(feedback_step, +-ifndef('FEEDBACK_PHASE_PB_H'). +-define('FEEDBACK_PHASE_PB_H', true). +-record(feedback_phase, {task_id = <<>> :: unicode:chardata() | undefined, % = 1, optional - code = 0 :: non_neg_integer() | undefined % = 2, optional, 32 bits - }). --endif. - --ifndef('FEEDBACK_RESULT_PB_H'). --define('FEEDBACK_RESULT_PB_H', true). --record(feedback_result, - {task_id = <<>> :: unicode:chardata() | undefined, % = 1, optional - task_type = <<>> :: unicode:chardata() | undefined, % = 2, optional - time = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits - code = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits - reason = <<>> :: unicode:chardata() | undefined, % = 5, optional - error = <<>> :: unicode:chardata() | undefined % = 6, optional + phase = <<>> :: unicode:chardata() | undefined, % = 2, optional + timestamp = 0 :: non_neg_integer() | undefined % = 3, optional, 32 bits }). -endif. -ifndef('EVENT_PB_H'). -define('EVENT_PB_H', true). -record(event, - {event_type = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - params = <<>> :: iodata() | undefined % = 2, optional + {service_id = <<>> :: unicode:chardata() | undefined, % = 1, optional + event_type = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits + params = <<>> :: unicode:chardata() | undefined % = 3, optional }). -endif. -ifndef('AI_EVENT_PB_H'). -define('AI_EVENT_PB_H', true). -record(ai_event, - {event_type = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - params = <<>> :: iodata() | undefined % = 2, optional - }). --endif. - --ifndef('DIRECTIVE_PB_H'). --define('DIRECTIVE_PB_H', true). --record(directive, - {device_uuid = <<>> :: unicode:chardata() | undefined, % = 1, optional - version = <<>> :: unicode:chardata() | undefined, % = 2, optional - directive_type = 0 :: non_neg_integer() | undefined, % = 3, optional, 32 bits - timeout = 0 :: non_neg_integer() | undefined, % = 4, optional, 32 bits - directive = <<>> :: iodata() | undefined % = 5, optional + {service_id = <<>> :: unicode:chardata() | undefined, % = 1, optional + event_type = 0 :: non_neg_integer() | undefined, % = 2, optional, 32 bits + params = <<>> :: unicode:chardata() | undefined % = 3, optional }). -endif. diff --git a/apps/iot/src/iot_host.erl b/apps/iot/src/iot_host.erl index 28d1c11..be727b9 100644 --- a/apps/iot/src/iot_host.erl +++ b/apps/iot/src/iot_host.erl @@ -22,8 +22,8 @@ %% API -export([start_link/2, get_name/1, get_alias_name/1, get_pid/1, handle/2, activate/2]). --export([get_metric/1, publish_message/4, get_status/1]). --export([publish_directive/6, send_directive/5]). +-export([get_metric/1, get_status/1]). +-export([publish_directive/4, send_directive/3]). -export([attach_channel/2]). -export([reload_device/2, delete_device/2, activate_device/3]). -export([heartbeat/1]). @@ -83,11 +83,10 @@ get_metric(Pid) when is_pid(Pid) -> attach_channel(Pid, ChannelPid) when is_pid(Pid), is_pid(ChannelPid) -> gen_statem:call(Pid, {attach_channel, ChannelPid}). -%% 这里占用的的调用进程的时间 --spec publish_message(Pid :: pid(), CommandType :: integer(), Params :: binary() | {Encrypt :: atom(), Params :: binary()}, Timeout :: integer()) -> +-spec publish_directive(Pid :: pid(), Topic :: binary(), Content :: binary(), Timeout :: integer()) -> ok | {ok, Response :: binary()} | {error, Reason :: any()}. -publish_message(Pid, CommandType, Params, Timeout) when is_pid(Pid), is_integer(CommandType), is_integer(Timeout) -> - case gen_statem:call(Pid, {publish_message, self(), CommandType, Params}) of +publish_directive(Pid, Topic, Content, Timeout) when is_pid(Pid), is_binary(Topic), is_binary(Content), is_integer(Timeout) -> + case gen_statem:call(Pid, {publish_directive, self(), Topic, Content}) of {ok, Ref} -> receive {ws_response, Ref} -> @@ -101,47 +100,10 @@ publish_message(Pid, CommandType, Params, Timeout) when is_pid(Pid), is_integer( {error, Reason} end. --spec publish_directive(Pid :: pid(), DeviceUUID :: binary(), DirectiveType :: integer(), Version :: binary(), DirectiveParams :: binary() | map(), Timeout :: integer()) -> - ok | {ok, Response :: binary()} | {error, Reason :: any()}. -publish_directive(Pid, DeviceUUID, DirectiveType, Version, DirectiveParams, Timeout) - when is_pid(Pid), is_binary(DeviceUUID), is_integer(DirectiveType), is_binary(Version), is_binary(DirectiveParams); is_map(DirectiveParams), is_integer(Timeout) -> - - Directive = #{ - <<"device_uuid">> => DeviceUUID, - <<"version">> => Version, - <<"directive_type">> => DirectiveType, - <<"directive">> => DirectiveParams - }, - JsonDirective = iolist_to_binary(jiffy:encode(Directive, [force_utf8])), - - case gen_statem:call(Pid, {publish_directive, self(), JsonDirective}) of - {ok, Ref} -> - receive - {ws_response, Ref} -> - ok; - {ws_response, Ref, Response} -> - {ok, Response} - after Timeout -> - {error, timeout} - end; - {error, Reason} -> - {error, Reason} - end. - --spec send_directive(Pid :: pid(), DeviceUUID :: binary(), DirectiveType :: integer(), Version :: binary(), DirectiveParams :: binary() | map()) -> +-spec send_directive(Pid :: pid(), Topic :: binary(), Content :: binary()) -> ok | {error, Reason :: any()}. -send_directive(Pid, DeviceUUID, DirectiveType, Version, DirectiveParams) - when is_pid(Pid), is_binary(DeviceUUID), is_integer(DirectiveType), is_binary(Version), is_binary(DirectiveParams); is_map(DirectiveParams) -> - - Directive = #{ - <<"device_uuid">> => DeviceUUID, - <<"version">> => Version, - <<"directive_type">> => DirectiveType, - <<"directive">> => DirectiveParams - }, - JsonDirective = iolist_to_binary(jiffy:encode(Directive, [force_utf8])), - - gen_statem:call(Pid, {send_directive, DeviceUUID, JsonDirective}). +send_directive(Pid, Topic, Content) when is_pid(Pid), is_binary(Topic), is_binary(Content) -> + gen_statem:call(Pid, {send_directive, Topic, Content}). %% 设备管理相关 @@ -249,33 +211,38 @@ handle_event({call, From}, {publish_message, _, _, _}, _, State = #state{uuid = {keep_state, State, [{reply, From, {error, <<"主机离线,发送命令失败"/utf8>>}}]}; %% 发送指令时, 指令要通过aes加密,必须要求session是存在的 -handle_event({call, From}, {publish_directive, ReceiverPid, Directive}, ?STATE_ACTIVATED, +handle_event({call, From}, {publish_directive, ReceiverPid, Topic, Content}, ?STATE_ACTIVATED, State = #state{uuid = UUID, channel_pid = ChannelPid, has_session = true}) -> + lager:debug("[iot_host] host: ~p, publish_directive to topic: ~p, content: ~p", [UUID, Topic, Content]), + BinTopicMessage = message_pb:encode_msg(#topic_message{topic = Topic, content = Content}), - lager:debug("[iot_host] host: ~p, will publish_directive: ~p", [UUID, Directive]), %% 通过websocket发送请求 - Ref = tcp_channel:publish(ChannelPid, ReceiverPid, <<16:8, Directive/binary>>), + Ref = tcp_channel:publish(ChannelPid, ReceiverPid, <<16:8, BinTopicMessage/binary>>), {keep_state, State, [{reply, From, {ok, Ref}}]}; %% 其他情况下,发送指令是失败的 -handle_event({call, From}, {publish_directive, _, Directive}, _, State = #state{uuid = UUID}) -> - lager:debug("[iot_host] uuid: ~p, publish_directive: ~p, invalid state: ~p", [UUID, Directive, state_map(State)]), +handle_event({call, From}, {publish_directive, _, Topic, Content}, _, State = #state{uuid = UUID}) -> + lager:debug("[iot_host] uuid: ~p, publish_directive to topic: ~p, content: ~p, invalid state: ~p", [UUID, Topic, Content, state_map(State)]), {keep_state, State, [{reply, From, {error, <<"主机离线,发送指令失败"/utf8>>}}]}; %% 发送指令时!! 指令要明确发送到的目标device_uuid, 因为指令内容采用了json的格式 -handle_event({call, From}, {send_directive, DeviceUUID, Directive}, ?STATE_ACTIVATED, +handle_event({call, From}, {send_directive, Topic, Content}, ?STATE_ACTIVATED, State = #state{uuid = UUID, channel_pid = ChannelPid, has_session = true}) -> - lager:debug("[iot_host] host: ~p, will publish_directive: ~p", [UUID, Directive]), + BinTopicMessage = message_pb:encode_msg(#topic_message{topic = Topic, content = Content}), + lager:debug("[iot_host] host: ~p, will publish_directive: ~p", [UUID, Content]), + %% 通过websocket发送请求 - tcp_channel:send(ChannelPid, <<16:8, DeviceUUID/binary, Directive/binary>>), + tcp_channel:send(ChannelPid, <<16:8, BinTopicMessage/binary>>), {keep_state, State, [{reply, From, ok}]}; %% 其他情况下,发送指令是失败的 -handle_event({call, From}, {send_directive, Directive}, _, State = #state{uuid = UUID}) -> - lager:debug("[iot_host] uuid: ~p, send_directive: ~p, invalid state: ~p", [UUID, Directive, state_map(State)]), +handle_event({call, From}, {send_directive, Topic, Content}, _, State = #state{uuid = UUID}) -> + lager:debug("[iot_host] host_uuid: ~p, send_directive to topic: ~p, content: ~p, invalid state: ~p", + [UUID, Topic, Content, state_map(State)]), + {keep_state, State, [{reply, From, {error, <<"主机离线,发送指令失败"/utf8>>}}]}; %% 激活主机 diff --git a/apps/iot/src/proto/message_pb.erl b/apps/iot/src/proto/message_pb.erl index ba8cd7a..3c01aae 100644 --- a/apps/iot/src/proto/message_pb.erl +++ b/apps/iot/src/proto/message_pb.erl @@ -61,9 +61,15 @@ -type activate_push() :: #activate_push{}. --type session_request() :: #session_request{}. +-type deploy() :: #deploy{}. --type session_reply() :: #session_reply{}. +-type efka_response() :: #efka_response{}. + +-type topic_message() :: #topic_message{}. + +-type service_params() :: #service_params{}. + +-type service_metrics() :: #service_metrics{}. -type data() :: #data{}. @@ -71,22 +77,17 @@ -type service_inform() :: #service_inform{}. --type feedback_step() :: #feedback_step{}. - --type feedback_result() :: #feedback_result{}. +-type feedback_phase() :: #feedback_phase{}. -type event() :: #event{}. -type ai_event() :: #ai_event{}. --type directive() :: #directive{}. - --export_type(['auth_request'/0, 'auth_reply'/0, 'activate_push'/0, 'session_request'/0, 'session_reply'/0, 'data'/0, 'ping'/0, 'service_inform'/0, 'feedback_step'/0, 'feedback_result'/0, 'event'/0, 'ai_event'/0, 'directive'/0]). --type '$msg_name'() :: auth_request | auth_reply | activate_push | session_request | session_reply | data | ping | service_inform | feedback_step | feedback_result | event | ai_event | directive. --type '$msg'() :: auth_request() | auth_reply() | activate_push() | session_request() | session_reply() | data() | ping() | service_inform() | feedback_step() | feedback_result() | event() | ai_event() | directive(). +-export_type(['auth_request'/0, 'auth_reply'/0, 'activate_push'/0, 'deploy'/0, 'efka_response'/0, 'topic_message'/0, 'service_params'/0, 'service_metrics'/0, 'data'/0, 'ping'/0, 'service_inform'/0, 'feedback_phase'/0, 'event'/0, 'ai_event'/0]). +-type '$msg_name'() :: auth_request | auth_reply | activate_push | deploy | efka_response | topic_message | service_params | service_metrics | data | ping | service_inform | feedback_phase | event | ai_event. +-type '$msg'() :: auth_request() | auth_reply() | activate_push() | deploy() | efka_response() | topic_message() | service_params() | service_metrics() | data() | ping() | service_inform() | feedback_phase() | event() | ai_event(). -export_type(['$msg_name'/0, '$msg'/0]). --record('map',{key, value}). -if(?OTP_RELEASE >= 24). -dialyzer({no_underspecs, encode_msg/1}). -endif. @@ -114,16 +115,17 @@ encode_msg(Msg, MsgName, Opts) -> auth_request -> encode_msg_auth_request(id(Msg, TrUserData), TrUserData); auth_reply -> encode_msg_auth_reply(id(Msg, TrUserData), TrUserData); activate_push -> encode_msg_activate_push(id(Msg, TrUserData), TrUserData); - session_request -> encode_msg_session_request(id(Msg, TrUserData), TrUserData); - session_reply -> encode_msg_session_reply(id(Msg, TrUserData), TrUserData); + deploy -> encode_msg_deploy(id(Msg, TrUserData), TrUserData); + efka_response -> encode_msg_efka_response(id(Msg, TrUserData), TrUserData); + topic_message -> encode_msg_topic_message(id(Msg, TrUserData), TrUserData); + service_params -> encode_msg_service_params(id(Msg, TrUserData), TrUserData); + service_metrics -> encode_msg_service_metrics(id(Msg, TrUserData), TrUserData); data -> encode_msg_data(id(Msg, TrUserData), TrUserData); ping -> encode_msg_ping(id(Msg, TrUserData), TrUserData); service_inform -> encode_msg_service_inform(id(Msg, TrUserData), TrUserData); - feedback_step -> encode_msg_feedback_step(id(Msg, TrUserData), TrUserData); - feedback_result -> encode_msg_feedback_result(id(Msg, TrUserData), TrUserData); + feedback_phase -> encode_msg_feedback_phase(id(Msg, TrUserData), TrUserData); event -> encode_msg_event(id(Msg, TrUserData), TrUserData); - ai_event -> encode_msg_ai_event(id(Msg, TrUserData), TrUserData); - directive -> encode_msg_directive(id(Msg, TrUserData), TrUserData) + ai_event -> encode_msg_ai_event(id(Msg, TrUserData), TrUserData) end. @@ -184,7 +186,45 @@ encode_msg_auth_request(#auth_request{uuid = F1, username = F2, salt = F3, token encode_msg_auth_reply(Msg, TrUserData) -> encode_msg_auth_reply(Msg, <<>>, TrUserData). -encode_msg_auth_reply(#auth_reply{code = F1, message = F2, repository_url = F3}, Bin, TrUserData) -> +encode_msg_auth_reply(#auth_reply{code = F1, message = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_varint(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end. + +encode_msg_activate_push(Msg, TrUserData) -> encode_msg_activate_push(Msg, <<>>, TrUserData). + + +encode_msg_activate_push(#activate_push{auth = F1}, Bin, TrUserData) -> + if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= false -> Bin; + true -> e_type_bool(TrF1, <>, TrUserData) + end + end + end. + +encode_msg_deploy(Msg, TrUserData) -> encode_msg_deploy(Msg, <<>>, TrUserData). + + +encode_msg_deploy(#deploy{task_id = F1, service_id = F2, tar_url = F3}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -215,40 +255,69 @@ encode_msg_auth_reply(#auth_reply{code = F1, message = F2, repository_url = F3}, end end. -encode_msg_activate_push(Msg, TrUserData) -> encode_msg_activate_push(Msg, <<>>, TrUserData). +encode_msg_efka_response(Msg, TrUserData) -> encode_msg_efka_response(Msg, <<>>, TrUserData). -encode_msg_activate_push(#activate_push{auth = F1}, Bin, TrUserData) -> - if F1 == undefined -> Bin; +encode_msg_efka_response(#efka_response{code = F1, result = F2, message = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + if TrF1 =:= 0 -> Bin; + true -> e_type_int32(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; true -> begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= false -> Bin; - true -> e_type_bool(TrF1, <>, TrUserData) + TrF3 = id(F3, TrUserData), + case is_empty_string(TrF3) of + true -> B2; + false -> e_type_string(TrF3, <>, TrUserData) end end end. -encode_msg_session_request(_Msg, _TrUserData) -> <<>>. - -encode_msg_session_reply(Msg, TrUserData) -> encode_msg_session_reply(Msg, <<>>, TrUserData). +encode_msg_topic_message(Msg, TrUserData) -> encode_msg_topic_message(Msg, <<>>, TrUserData). -encode_msg_session_reply(#session_reply{a = F1}, Bin, TrUserData) -> - if F1 == undefined -> Bin; +encode_msg_topic_message(#topic_message{topic = F1, content = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; true -> begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= false -> Bin; - true -> e_type_bool(TrF1, <>, TrUserData) + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) end end end. -encode_msg_data(Msg, TrUserData) -> encode_msg_data(Msg, <<>>, TrUserData). +encode_msg_service_params(Msg, TrUserData) -> encode_msg_service_params(Msg, <<>>, TrUserData). -encode_msg_data(#data{device_uuid = F1, service_name = F2, at = F3, tags = F4, fields = F5}, Bin, TrUserData) -> +encode_msg_service_params(#service_params{service_id = F1, params = F2, timeout = F3}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -269,26 +338,73 @@ encode_msg_data(#data{device_uuid = F1, service_name = F2, at = F3, tags = F4, f end end end, - B3 = if F3 == undefined -> B2; + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= 0 -> B2; + true -> e_varint(TrF3, <>, TrUserData) + end + end + end. + +encode_msg_service_metrics(Msg, TrUserData) -> encode_msg_service_metrics(Msg, <<>>, TrUserData). + + +encode_msg_service_metrics(#service_metrics{service_id = F1, metrics = F2, timeout = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; true -> begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_type_int32(TrF3, <>, TrUserData) + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) end end end, - B4 = begin - TrF4 = id(F4, TrUserData), - if TrF4 == [] -> B3; - true -> e_field_data_tags(TrF4, B3, TrUserData) - end + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end end, - begin - TrF5 = id(F5, TrUserData), - if TrF5 == [] -> B4; - true -> e_field_data_fields(TrF5, B4, TrUserData) - end + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= 0 -> B2; + true -> e_varint(TrF3, <>, TrUserData) + end + end + end. + +encode_msg_data(Msg, TrUserData) -> encode_msg_data(Msg, <<>>, TrUserData). + + +encode_msg_data(#data{service_id = F1, metric = F2}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end end. encode_msg_ping(Msg, TrUserData) -> encode_msg_ping(Msg, <<>>, TrUserData). @@ -399,104 +515,21 @@ encode_msg_ping(#ping{adcode = F1, boot_time = F2, province = F3, city = F4, efk true -> e_field_ping_memory(TrF12, B11, TrUserData) end end, - begin - TrF13 = id(F13, TrUserData), - if TrF13 == [] -> B12; - true -> e_field_ping_interfaces(TrF13, B12, TrUserData) - end + if F13 == undefined -> B12; + true -> + begin + TrF13 = id(F13, TrUserData), + case is_empty_string(TrF13) of + true -> B12; + false -> e_type_string(TrF13, <>, TrUserData) + end + end end. encode_msg_service_inform(Msg, TrUserData) -> encode_msg_service_inform(Msg, <<>>, TrUserData). -encode_msg_service_inform(#service_inform{name = F1, props = F2, version = F3, version_copy = F4, status = F5, at = F6}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - case is_empty_string(TrF1) of - true -> Bin; - false -> e_type_string(TrF1, <>, TrUserData) - end - end - end, - B2 = if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case is_empty_string(TrF2) of - true -> B1; - false -> e_type_string(TrF2, <>, TrUserData) - end - end - end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - case is_empty_string(TrF3) of - true -> B2; - false -> e_type_string(TrF3, <>, TrUserData) - end - end - end, - B4 = if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - case is_empty_string(TrF4) of - true -> B3; - false -> e_type_string(TrF4, <>, TrUserData) - end - end - end, - B5 = if F5 == undefined -> B4; - true -> - begin - TrF5 = id(F5, TrUserData), - if TrF5 =:= 0 -> B4; - true -> e_varint(TrF5, <>, TrUserData) - end - end - end, - if F6 == undefined -> B5; - true -> - begin - TrF6 = id(F6, TrUserData), - if TrF6 =:= 0 -> B5; - true -> e_varint(TrF6, <>, TrUserData) - end - end - end. - -encode_msg_feedback_step(Msg, TrUserData) -> encode_msg_feedback_step(Msg, <<>>, TrUserData). - - -encode_msg_feedback_step(#feedback_step{task_id = F1, code = F2}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - case is_empty_string(TrF1) of - true -> Bin; - false -> e_type_string(TrF1, <>, TrUserData) - end - end - end, - if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - if TrF2 =:= 0 -> B1; - true -> e_varint(TrF2, <>, TrUserData) - end - end - end. - -encode_msg_feedback_result(Msg, TrUserData) -> encode_msg_feedback_result(Msg, <<>>, TrUserData). - - -encode_msg_feedback_result(#feedback_result{task_id = F1, task_type = F2, time = F3, code = F4, reason = F5, error = F6}, Bin, TrUserData) -> +encode_msg_service_inform(#service_inform{service_id = F1, props = F2, status = F3, timestamp = F4}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -526,32 +559,46 @@ encode_msg_feedback_result(#feedback_result{task_id = F1, task_type = F2, time = end end end, - B4 = if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= 0 -> B3; - true -> e_varint(TrF4, <>, TrUserData) - end - end - end, - B5 = if F5 == undefined -> B4; - true -> - begin - TrF5 = id(F5, TrUserData), - case is_empty_string(TrF5) of - true -> B4; - false -> e_type_string(TrF5, <>, TrUserData) - end - end - end, - if F6 == undefined -> B5; + if F4 == undefined -> B3; true -> begin - TrF6 = id(F6, TrUserData), - case is_empty_string(TrF6) of - true -> B5; - false -> e_type_string(TrF6, <>, TrUserData) + TrF4 = id(F4, TrUserData), + if TrF4 =:= 0 -> B3; + true -> e_varint(TrF4, <>, TrUserData) + end + end + end. + +encode_msg_feedback_phase(Msg, TrUserData) -> encode_msg_feedback_phase(Msg, <<>>, TrUserData). + + +encode_msg_feedback_phase(#feedback_phase{task_id = F1, phase = F2, timestamp = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + if TrF3 =:= 0 -> B2; + true -> e_varint(TrF3, <>, TrUserData) end end end. @@ -559,55 +606,7 @@ encode_msg_feedback_result(#feedback_result{task_id = F1, task_type = F2, time = encode_msg_event(Msg, TrUserData) -> encode_msg_event(Msg, <<>>, TrUserData). -encode_msg_event(#event{event_type = F1, params = F2}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, TrUserData) - end - end - end. - -encode_msg_ai_event(Msg, TrUserData) -> encode_msg_ai_event(Msg, <<>>, TrUserData). - - -encode_msg_ai_event(#ai_event{event_type = F1, params = F2}, Bin, TrUserData) -> - B1 = if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - if TrF1 =:= 0 -> Bin; - true -> e_varint(TrF1, <>, TrUserData) - end - end - end, - if F2 == undefined -> B1; - true -> - begin - TrF2 = id(F2, TrUserData), - case iolist_size(TrF2) of - 0 -> B1; - _ -> e_type_bytes(TrF2, <>, TrUserData) - end - end - end. - -encode_msg_directive(Msg, TrUserData) -> encode_msg_directive(Msg, <<>>, TrUserData). - - -encode_msg_directive(#directive{device_uuid = F1, version = F2, directive_type = F3, timeout = F4, directive = F5}, Bin, TrUserData) -> +encode_msg_event(#event{service_id = F1, event_type = F2, params = F3}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -622,57 +621,55 @@ encode_msg_directive(#directive{device_uuid = F1, version = F2, directive_type = true -> begin TrF2 = id(F2, TrUserData), - case is_empty_string(TrF2) of - true -> B1; - false -> e_type_string(TrF2, <>, TrUserData) + if TrF2 =:= 0 -> B1; + true -> e_varint(TrF2, <>, TrUserData) end end end, - B3 = if F3 == undefined -> B2; - true -> - begin - TrF3 = id(F3, TrUserData), - if TrF3 =:= 0 -> B2; - true -> e_varint(TrF3, <>, TrUserData) - end - end - end, - B4 = if F4 == undefined -> B3; - true -> - begin - TrF4 = id(F4, TrUserData), - if TrF4 =:= 0 -> B3; - true -> e_varint(TrF4, <>, TrUserData) - end - end - end, - if F5 == undefined -> B4; + if F3 == undefined -> B2; true -> begin - TrF5 = id(F5, TrUserData), - case iolist_size(TrF5) of - 0 -> B4; - _ -> e_type_bytes(TrF5, <>, TrUserData) + TrF3 = id(F3, TrUserData), + case is_empty_string(TrF3) of + true -> B2; + false -> e_type_string(TrF3, <>, TrUserData) end end end. -e_mfield_data_tags(Msg, Bin, TrUserData) -> - SubBin = 'encode_msg_map'(Msg, <<>>, TrUserData), - Bin2 = e_varint(byte_size(SubBin), Bin), - <>. +encode_msg_ai_event(Msg, TrUserData) -> encode_msg_ai_event(Msg, <<>>, TrUserData). -e_field_data_tags([Elem | Rest], Bin, TrUserData) -> - Bin2 = <>, - Bin3 = e_mfield_data_tags('tr_encode_data.tags[x]'(Elem, TrUserData), Bin2, TrUserData), - e_field_data_tags(Rest, Bin3, TrUserData); -e_field_data_tags([], Bin, _TrUserData) -> Bin. -e_field_data_fields([Elem | Rest], Bin, TrUserData) -> - Bin2 = <>, - Bin3 = e_type_bytes(id(Elem, TrUserData), Bin2, TrUserData), - e_field_data_fields(Rest, Bin3, TrUserData); -e_field_data_fields([], Bin, _TrUserData) -> Bin. +encode_msg_ai_event(#ai_event{service_id = F1, event_type = F2, params = F3}, Bin, TrUserData) -> + B1 = if F1 == undefined -> Bin; + true -> + begin + TrF1 = id(F1, TrUserData), + case is_empty_string(TrF1) of + true -> Bin; + false -> e_type_string(TrF1, <>, TrUserData) + end + end + end, + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + if TrF2 =:= 0 -> B1; + true -> e_varint(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; + true -> + begin + TrF3 = id(F3, TrUserData), + case is_empty_string(TrF3) of + true -> B2; + false -> e_type_string(TrF3, <>, TrUserData) + end + end + end. e_field_ping_ips([Elem | Rest], Bin, TrUserData) -> Bin2 = <>, @@ -704,16 +701,6 @@ e_pfield_ping_memory([Value | Rest], Bin, TrUserData) -> e_pfield_ping_memory(Rest, Bin2, TrUserData); e_pfield_ping_memory([], Bin, _TrUserData) -> Bin. -e_field_ping_interfaces([Elem | Rest], Bin, TrUserData) -> - Bin2 = <>, - Bin3 = e_type_bytes(id(Elem, TrUserData), Bin2, TrUserData), - e_field_ping_interfaces(Rest, Bin3, TrUserData); -e_field_ping_interfaces([], Bin, _TrUserData) -> Bin. - -'encode_msg_map'(#'map'{key = F1, value = F2}, Bin, TrUserData) -> - B1 = begin TrF1 = id(F1, TrUserData), e_type_string(TrF1, <>, TrUserData) end, - begin TrF2 = id(F2, TrUserData), e_type_string(TrF2, <>, TrUserData) end. - -compile({nowarn_unused_function,e_type_sint/3}). e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin); e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin). @@ -855,16 +842,17 @@ decode_msg_1_catch(Bin, MsgName, TrUserData) -> decode_msg_2_doit(auth_request, Bin, TrUserData) -> id(decode_msg_auth_request(Bin, TrUserData), TrUserData); decode_msg_2_doit(auth_reply, Bin, TrUserData) -> id(decode_msg_auth_reply(Bin, TrUserData), TrUserData); decode_msg_2_doit(activate_push, Bin, TrUserData) -> id(decode_msg_activate_push(Bin, TrUserData), TrUserData); -decode_msg_2_doit(session_request, Bin, TrUserData) -> id(decode_msg_session_request(Bin, TrUserData), TrUserData); -decode_msg_2_doit(session_reply, Bin, TrUserData) -> id(decode_msg_session_reply(Bin, TrUserData), TrUserData); +decode_msg_2_doit(deploy, Bin, TrUserData) -> id(decode_msg_deploy(Bin, TrUserData), TrUserData); +decode_msg_2_doit(efka_response, Bin, TrUserData) -> id(decode_msg_efka_response(Bin, TrUserData), TrUserData); +decode_msg_2_doit(topic_message, Bin, TrUserData) -> id(decode_msg_topic_message(Bin, TrUserData), TrUserData); +decode_msg_2_doit(service_params, Bin, TrUserData) -> id(decode_msg_service_params(Bin, TrUserData), TrUserData); +decode_msg_2_doit(service_metrics, Bin, TrUserData) -> id(decode_msg_service_metrics(Bin, TrUserData), TrUserData); decode_msg_2_doit(data, Bin, TrUserData) -> id(decode_msg_data(Bin, TrUserData), TrUserData); decode_msg_2_doit(ping, Bin, TrUserData) -> id(decode_msg_ping(Bin, TrUserData), TrUserData); decode_msg_2_doit(service_inform, Bin, TrUserData) -> id(decode_msg_service_inform(Bin, TrUserData), TrUserData); -decode_msg_2_doit(feedback_step, Bin, TrUserData) -> id(decode_msg_feedback_step(Bin, TrUserData), TrUserData); -decode_msg_2_doit(feedback_result, Bin, TrUserData) -> id(decode_msg_feedback_result(Bin, TrUserData), TrUserData); +decode_msg_2_doit(feedback_phase, Bin, TrUserData) -> id(decode_msg_feedback_phase(Bin, TrUserData), TrUserData); decode_msg_2_doit(event, Bin, TrUserData) -> id(decode_msg_event(Bin, TrUserData), TrUserData); -decode_msg_2_doit(ai_event, Bin, TrUserData) -> id(decode_msg_ai_event(Bin, TrUserData), TrUserData); -decode_msg_2_doit(directive, Bin, TrUserData) -> id(decode_msg_directive(Bin, TrUserData), TrUserData). +decode_msg_2_doit(ai_event, Bin, TrUserData) -> id(decode_msg_ai_event(Bin, TrUserData), TrUserData). @@ -940,63 +928,56 @@ skip_32_auth_request(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F skip_64_auth_request(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_auth_request(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). -decode_msg_auth_reply(Bin, TrUserData) -> dfp_read_field_def_auth_reply(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). +decode_msg_auth_reply(Bin, TrUserData) -> dfp_read_field_def_auth_reply(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). -dfp_read_field_def_auth_reply(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_auth_reply_code(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_auth_reply(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_auth_reply_message(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_auth_reply(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_auth_reply_repository_url(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_auth_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #auth_reply{code = F@_1, message = F@_2, repository_url = F@_3}; -dfp_read_field_def_auth_reply(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_auth_reply(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +dfp_read_field_def_auth_reply(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_auth_reply_code(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_auth_reply(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_auth_reply_message(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_auth_reply(<<>>, 0, 0, _, F@_1, F@_2, _) -> #auth_reply{code = F@_1, message = F@_2}; +dfp_read_field_def_auth_reply(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_auth_reply(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). -dg_read_field_def_auth_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_auth_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_auth_reply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> +dg_read_field_def_auth_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_auth_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_auth_reply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> Key = X bsl N + Acc, case Key of - 8 -> d_field_auth_reply_code(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 18 -> d_field_auth_reply_message(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 26 -> d_field_auth_reply_repository_url(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 8 -> d_field_auth_reply_code(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_auth_reply_message(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + 0 -> skip_varint_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_auth_reply(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) end end; -dg_read_field_def_auth_reply(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #auth_reply{code = F@_1, message = F@_2, repository_url = F@_3}. +dg_read_field_def_auth_reply(<<>>, 0, 0, _, F@_1, F@_2, _) -> #auth_reply{code = F@_1, message = F@_2}. -d_field_auth_reply_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_auth_reply_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_auth_reply_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> +d_field_auth_reply_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_auth_reply_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_auth_reply_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_auth_reply(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + dfp_read_field_def_auth_reply(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). -d_field_auth_reply_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_auth_reply_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_auth_reply_message(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> +d_field_auth_reply_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_auth_reply_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_auth_reply_message(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_auth_reply(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + dfp_read_field_def_auth_reply(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). -d_field_auth_reply_repository_url(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_auth_reply_repository_url(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_auth_reply_repository_url(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_auth_reply(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). +skip_varint_auth_reply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_auth_reply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -skip_varint_auth_reply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_auth_reply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_length_delimited_auth_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_auth_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_auth_reply(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> +skip_length_delimited_auth_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_auth_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_auth_reply(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_auth_reply(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + dfp_read_field_def_auth_reply(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). -skip_group_auth_reply(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> +skip_group_auth_reply(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_auth_reply(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + dfp_read_field_def_auth_reply(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). -skip_32_auth_reply(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +skip_32_auth_reply(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -skip_64_auth_reply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +skip_64_auth_reply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_auth_reply(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). decode_msg_activate_push(Bin, TrUserData) -> dfp_read_field_def_activate_push(Bin, 0, 0, 0, id(false, TrUserData), TrUserData). @@ -1042,155 +1023,339 @@ skip_32_activate_push(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp skip_64_activate_push(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_activate_push(Rest, Z1, Z2, F, F@_1, TrUserData). -decode_msg_session_request(Bin, TrUserData) -> dfp_read_field_def_session_request(Bin, 0, 0, 0, TrUserData). +decode_msg_deploy(Bin, TrUserData) -> dfp_read_field_def_deploy(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). -dfp_read_field_def_session_request(<<>>, 0, 0, _, _) -> #session_request{}; -dfp_read_field_def_session_request(Other, Z1, Z2, F, TrUserData) -> dg_read_field_def_session_request(Other, Z1, Z2, F, TrUserData). +dfp_read_field_def_deploy(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_deploy_task_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_deploy(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_deploy_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_deploy(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_deploy_tar_url(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_deploy(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #deploy{task_id = F@_1, service_id = F@_2, tar_url = F@_3}; +dfp_read_field_def_deploy(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_deploy(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -dg_read_field_def_session_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, TrUserData) when N < 32 - 7 -> dg_read_field_def_session_request(Rest, N + 7, X bsl N + Acc, F, TrUserData); -dg_read_field_def_session_request(<<0:1, X:7, Rest/binary>>, N, Acc, _, TrUserData) -> - Key = X bsl N + Acc, - case Key band 7 of - 0 -> skip_varint_session_request(Rest, 0, 0, Key bsr 3, TrUserData); - 1 -> skip_64_session_request(Rest, 0, 0, Key bsr 3, TrUserData); - 2 -> skip_length_delimited_session_request(Rest, 0, 0, Key bsr 3, TrUserData); - 3 -> skip_group_session_request(Rest, 0, 0, Key bsr 3, TrUserData); - 5 -> skip_32_session_request(Rest, 0, 0, Key bsr 3, TrUserData) - end; -dg_read_field_def_session_request(<<>>, 0, 0, _, _) -> #session_request{}. - -skip_varint_session_request(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, TrUserData) -> skip_varint_session_request(Rest, Z1, Z2, F, TrUserData); -skip_varint_session_request(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_field_def_session_request(Rest, Z1, Z2, F, TrUserData). - -skip_length_delimited_session_request(<<1:1, X:7, Rest/binary>>, N, Acc, F, TrUserData) when N < 57 -> skip_length_delimited_session_request(Rest, N + 7, X bsl N + Acc, F, TrUserData); -skip_length_delimited_session_request(<<0:1, X:7, Rest/binary>>, N, Acc, F, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_session_request(Rest2, 0, 0, F, TrUserData). - -skip_group_session_request(Bin, _, Z2, FNum, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_session_request(Rest, 0, Z2, FNum, TrUserData). - -skip_32_session_request(<<_:32, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_field_def_session_request(Rest, Z1, Z2, F, TrUserData). - -skip_64_session_request(<<_:64, Rest/binary>>, Z1, Z2, F, TrUserData) -> dfp_read_field_def_session_request(Rest, Z1, Z2, F, TrUserData). - -decode_msg_session_reply(Bin, TrUserData) -> dfp_read_field_def_session_reply(Bin, 0, 0, 0, id(false, TrUserData), TrUserData). - -dfp_read_field_def_session_reply(<<8, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_session_reply_a(Rest, Z1, Z2, F, F@_1, TrUserData); -dfp_read_field_def_session_reply(<<>>, 0, 0, _, F@_1, _) -> #session_reply{a = F@_1}; -dfp_read_field_def_session_reply(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_session_reply(Other, Z1, Z2, F, F@_1, TrUserData). - -dg_read_field_def_session_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_session_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -dg_read_field_def_session_reply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> +dg_read_field_def_deploy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_deploy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_deploy(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 8 -> d_field_session_reply_a(Rest, 0, 0, 0, F@_1, TrUserData); + 8 -> d_field_deploy_task_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_deploy_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_deploy_tar_url(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_session_reply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 1 -> skip_64_session_reply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 2 -> skip_length_delimited_session_reply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 3 -> skip_group_session_reply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 5 -> skip_32_session_reply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) + 0 -> skip_varint_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) end end; -dg_read_field_def_session_reply(<<>>, 0, 0, _, F@_1, _) -> #session_reply{a = F@_1}. +dg_read_field_def_deploy(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #deploy{task_id = F@_1, service_id = F@_2, tar_url = F@_3}. -d_field_session_reply_a(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_session_reply_a(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -d_field_session_reply_a(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) -> - {NewFValue, RestF} = {id(X bsl N + Acc =/= 0, TrUserData), Rest}, - dfp_read_field_def_session_reply(RestF, 0, 0, F, NewFValue, TrUserData). +d_field_deploy_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_deploy_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_deploy_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_deploy(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). -skip_varint_session_reply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_session_reply(Rest, Z1, Z2, F, F@_1, TrUserData); -skip_varint_session_reply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_session_reply(Rest, Z1, Z2, F, F@_1, TrUserData). +d_field_deploy_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_deploy_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_deploy_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_deploy(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). -skip_length_delimited_session_reply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_session_reply(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -skip_length_delimited_session_reply(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> +d_field_deploy_tar_url(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_deploy_tar_url(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_deploy_tar_url(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_deploy(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_deploy(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_deploy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_deploy(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_deploy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_deploy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_deploy(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_session_reply(Rest2, 0, 0, F, F@_1, TrUserData). + dfp_read_field_def_deploy(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_session_reply(Bin, _, Z2, FNum, F@_1, TrUserData) -> +skip_group_deploy(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_session_reply(Rest, 0, Z2, FNum, F@_1, TrUserData). + dfp_read_field_def_deploy(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_session_reply(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_session_reply(Rest, Z1, Z2, F, F@_1, TrUserData). +skip_32_deploy(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_session_reply(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_session_reply(Rest, Z1, Z2, F, F@_1, TrUserData). +skip_64_deploy(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -decode_msg_data(Bin, TrUserData) -> dfp_read_field_def_data(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), 'tr_decode_init_default_data.tags'([], TrUserData), id([], TrUserData), TrUserData). +decode_msg_efka_response(Bin, TrUserData) -> dfp_read_field_def_efka_response(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). -dfp_read_field_def_data(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_device_uuid(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_data(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_service_name(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_data(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_at(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_data(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_tags(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_data(<<42, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_data_fields(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, R1, R2, TrUserData) -> #data{device_uuid = F@_1, service_name = F@_2, at = F@_3, tags = 'tr_decode_repeated_finalize_data.tags'(R1, TrUserData), fields = lists_reverse(R2, TrUserData)}; -dfp_read_field_def_data(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dg_read_field_def_data(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). +dfp_read_field_def_efka_response(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_efka_response_code(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_efka_response(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_efka_response_result(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_efka_response(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_efka_response_message(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_efka_response(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #efka_response{code = F@_1, result = F@_2, message = F@_3}; +dfp_read_field_def_efka_response(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_efka_response(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -dg_read_field_def_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 32 - 7 -> dg_read_field_def_data(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dg_read_field_def_data(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> +dg_read_field_def_efka_response(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_efka_response(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_efka_response(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> d_field_data_device_uuid(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 18 -> d_field_data_service_name(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 24 -> d_field_data_at(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 34 -> d_field_data_tags(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 42 -> d_field_data_fields(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); + 8 -> d_field_efka_response_code(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_efka_response_result(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_efka_response_message(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 1 -> skip_64_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 2 -> skip_length_delimited_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 3 -> skip_group_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 5 -> skip_32_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) + 0 -> skip_varint_efka_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_efka_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_efka_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_efka_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_efka_response(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) end end; -dg_read_field_def_data(<<>>, 0, 0, _, F@_1, F@_2, F@_3, R1, R2, TrUserData) -> #data{device_uuid = F@_1, service_name = F@_2, at = F@_3, tags = 'tr_decode_repeated_finalize_data.tags'(R1, TrUserData), fields = lists_reverse(R2, TrUserData)}. +dg_read_field_def_efka_response(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #efka_response{code = F@_1, result = F@_2, message = F@_3}. -d_field_data_device_uuid(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_device_uuid(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_data_device_uuid(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_data(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, TrUserData). - -d_field_data_service_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_service_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_data_service_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_data(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, TrUserData). - -d_field_data_at(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_at(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_data_at(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, TrUserData) -> +d_field_efka_response_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_efka_response_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_efka_response_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, - dfp_read_field_def_data(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, TrUserData). + dfp_read_field_def_efka_response(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). -d_field_data_tags(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_tags(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_data_tags(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, Prev, F@_5, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_map'(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_data(RestF, 0, 0, F, F@_1, F@_2, F@_3, 'tr_decode_repeated_add_elem_data.tags'(NewFValue, Prev, TrUserData), F@_5, TrUserData). - -d_field_data_fields(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_data_fields(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_data_fields(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, Prev, TrUserData) -> +d_field_efka_response_result(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_efka_response_result(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_efka_response_result(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_data(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, cons(NewFValue, Prev, TrUserData), TrUserData). + dfp_read_field_def_efka_response(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). -skip_varint_data(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> skip_varint_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -skip_varint_data(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). +d_field_efka_response_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_efka_response_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_efka_response_message(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_efka_response(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). -skip_length_delimited_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> skip_length_delimited_data(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -skip_length_delimited_data(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> +skip_varint_efka_response(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_efka_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_efka_response(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_efka_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_efka_response(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_efka_response(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_efka_response(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_data(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + dfp_read_field_def_efka_response(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_data(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> +skip_group_efka_response(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_data(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). + dfp_read_field_def_efka_response(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_data(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). +skip_32_efka_response(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_efka_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_data(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_data(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). +skip_64_efka_response(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_efka_response(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_topic_message(Bin, TrUserData) -> dfp_read_field_def_topic_message(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_topic_message(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_topic_message_topic(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_topic_message(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_topic_message_content(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_topic_message(<<>>, 0, 0, _, F@_1, F@_2, _) -> #topic_message{topic = F@_1, content = F@_2}; +dfp_read_field_def_topic_message(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_topic_message(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_topic_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_topic_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_topic_message(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_topic_message_topic(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_topic_message_content(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_topic_message(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_topic_message(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_topic_message(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_topic_message(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_topic_message(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_topic_message(<<>>, 0, 0, _, F@_1, F@_2, _) -> #topic_message{topic = F@_1, content = F@_2}. + +d_field_topic_message_topic(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_topic_message_topic(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_topic_message_topic(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_topic_message(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_topic_message_content(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_topic_message_content(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_topic_message_content(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_topic_message(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_topic_message(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_topic_message(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_topic_message(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_topic_message(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_topic_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_topic_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_topic_message(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_topic_message(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_topic_message(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_topic_message(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_topic_message(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_topic_message(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_topic_message(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_topic_message(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +decode_msg_service_params(Bin, TrUserData) -> dfp_read_field_def_service_params(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData). + +dfp_read_field_def_service_params(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_service_params_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_service_params(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_service_params_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_service_params(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_service_params_timeout(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_service_params(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #service_params{service_id = F@_1, params = F@_2, timeout = F@_3}; +dfp_read_field_def_service_params(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_service_params(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_service_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_service_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_service_params(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_service_params_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_service_params_params(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 24 -> d_field_service_params_timeout(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_service_params(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_service_params(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_service_params(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_service_params(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_service_params(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +dg_read_field_def_service_params(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #service_params{service_id = F@_1, params = F@_2, timeout = F@_3}. + +d_field_service_params_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_service_params_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_service_params_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_service_params(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_service_params_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_service_params_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_service_params_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_service_params(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_service_params_timeout(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_service_params_timeout(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_service_params_timeout(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_service_params(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_service_params(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_service_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_service_params(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_service_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_service_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_service_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_service_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_service_params(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +skip_group_service_params(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_service_params(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_service_params(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_service_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_service_params(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_service_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_service_metrics(Bin, TrUserData) -> dfp_read_field_def_service_metrics(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData). + +dfp_read_field_def_service_metrics(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_service_metrics_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_service_metrics(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_service_metrics_metrics(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_service_metrics(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_service_metrics_timeout(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_service_metrics(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #service_metrics{service_id = F@_1, metrics = F@_2, timeout = F@_3}; +dfp_read_field_def_service_metrics(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_service_metrics(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +dg_read_field_def_service_metrics(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_service_metrics(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_service_metrics(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_service_metrics_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_service_metrics_metrics(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 24 -> d_field_service_metrics_timeout(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_service_metrics(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_service_metrics(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_service_metrics(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_service_metrics(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_service_metrics(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +dg_read_field_def_service_metrics(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #service_metrics{service_id = F@_1, metrics = F@_2, timeout = F@_3}. + +d_field_service_metrics_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_service_metrics_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_service_metrics_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_service_metrics(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_service_metrics_metrics(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_service_metrics_metrics(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_service_metrics_metrics(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_service_metrics(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_service_metrics_timeout(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_service_metrics_timeout(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_service_metrics_timeout(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_service_metrics(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_service_metrics(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_service_metrics(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_service_metrics(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_service_metrics(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_service_metrics(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_service_metrics(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_service_metrics(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_service_metrics(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +skip_group_service_metrics(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_service_metrics(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +skip_32_service_metrics(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_service_metrics(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_64_service_metrics(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_service_metrics(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_data(Bin, TrUserData) -> dfp_read_field_def_data(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +dfp_read_field_def_data(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_data_service_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_data(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_data_metric(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_data(<<>>, 0, 0, _, F@_1, F@_2, _) -> #data{service_id = F@_1, metric = F@_2}; +dfp_read_field_def_data(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_data(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +dg_read_field_def_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_data(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_data(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 10 -> d_field_data_service_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> d_field_data_metric(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_data(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +dg_read_field_def_data(<<>>, 0, 0, _, F@_1, F@_2, _) -> #data{service_id = F@_1, metric = F@_2}. + +d_field_data_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_data_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_data_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_data(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_data_metric(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_data_metric(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_data_metric(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_data(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +skip_varint_data(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_data(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_data(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_data(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_data(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_data(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_data(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_data(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_data(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_data(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_data(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_data(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_data(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). decode_msg_ping(Bin, TrUserData) -> dfp_read_field_def_ping(Bin, @@ -1209,7 +1374,7 @@ decode_msg_ping(Bin, TrUserData) -> id(0.0, TrUserData), id([], TrUserData), id([], TrUserData), - id([], TrUserData), + id(<<>>, TrUserData), TrUserData). dfp_read_field_def_ping(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) -> @@ -1242,9 +1407,9 @@ dfp_read_field_def_ping(<<96, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, d_field_ping_memory(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData); dfp_read_field_def_ping(<<106, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) -> d_field_ping_interfaces(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData); -dfp_read_field_def_ping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, R1, F@_8, F@_9, F@_10, R2, R3, R4, TrUserData) -> +dfp_read_field_def_ping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, R1, F@_8, F@_9, F@_10, R2, R3, F@_13, TrUserData) -> #ping{adcode = F@_1, boot_time = F@_2, province = F@_3, city = F@_4, efka_version = F@_5, kernel_arch = F@_6, ips = lists_reverse(R1, TrUserData), cpu_core = F@_8, cpu_load = F@_9, cpu_temperature = F@_10, disk = lists_reverse(R2, TrUserData), - memory = lists_reverse(R3, TrUserData), interfaces = lists_reverse(R4, TrUserData)}; + memory = lists_reverse(R3, TrUserData), interfaces = F@_13}; dfp_read_field_def_ping(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) -> dg_read_field_def_ping(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData). @@ -1277,9 +1442,9 @@ dg_read_field_def_ping(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F 5 -> skip_32_ping(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) end end; -dg_read_field_def_ping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, R1, F@_8, F@_9, F@_10, R2, R3, R4, TrUserData) -> +dg_read_field_def_ping(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, R1, F@_8, F@_9, F@_10, R2, R3, F@_13, TrUserData) -> #ping{adcode = F@_1, boot_time = F@_2, province = F@_3, city = F@_4, efka_version = F@_5, kernel_arch = F@_6, ips = lists_reverse(R1, TrUserData), cpu_core = F@_8, cpu_load = F@_9, cpu_temperature = F@_10, disk = lists_reverse(R2, TrUserData), - memory = lists_reverse(R3, TrUserData), interfaces = lists_reverse(R4, TrUserData)}. + memory = lists_reverse(R3, TrUserData), interfaces = F@_13}. d_field_ping_adcode(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) when N < 57 -> d_field_ping_adcode(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData); @@ -1386,9 +1551,9 @@ d_packed_field_ping_memory(<<>>, 0, 0, _, AccSeq, _) -> AccSeq. d_field_ping_interfaces(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) when N < 57 -> d_field_ping_interfaces(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData); -d_field_ping_interfaces(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, Prev, TrUserData) -> +d_field_ping_interfaces(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, _, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_ping(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, cons(NewFValue, Prev, TrUserData), TrUserData). + dfp_read_field_def_ping(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, NewFValue, TrUserData). skip_varint_ping(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) -> skip_varint_ping(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData); @@ -1412,443 +1577,244 @@ skip_32_ping(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_ skip_64_ping(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData) -> dfp_read_field_def_ping(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, F@_7, F@_8, F@_9, F@_10, F@_11, F@_12, F@_13, TrUserData). -decode_msg_service_inform(Bin, TrUserData) -> dfp_read_field_def_service_inform(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData). +decode_msg_service_inform(Bin, TrUserData) -> dfp_read_field_def_service_inform(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), TrUserData). -dfp_read_field_def_service_inform(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_service_inform_name(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_service_inform(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_service_inform_props(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_service_inform(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_service_inform_version(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_service_inform(<<34, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_service_inform_version_copy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_service_inform(<<40, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_service_inform_status(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_service_inform(<<48, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_service_inform_at(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_service_inform(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _) -> #service_inform{name = F@_1, props = F@_2, version = F@_3, version_copy = F@_4, status = F@_5, at = F@_6}; -dfp_read_field_def_service_inform(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dg_read_field_def_service_inform(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). +dfp_read_field_def_service_inform(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_service_inform_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_service_inform(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_service_inform_props(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_service_inform(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_service_inform_status(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_service_inform(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> d_field_service_inform_timestamp(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dfp_read_field_def_service_inform(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #service_inform{service_id = F@_1, props = F@_2, status = F@_3, timestamp = F@_4}; +dfp_read_field_def_service_inform(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dg_read_field_def_service_inform(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). -dg_read_field_def_service_inform(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 32 - 7 -> dg_read_field_def_service_inform(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dg_read_field_def_service_inform(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +dg_read_field_def_service_inform(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 32 - 7 -> dg_read_field_def_service_inform(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +dg_read_field_def_service_inform(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> d_field_service_inform_name(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 18 -> d_field_service_inform_props(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 26 -> d_field_service_inform_version(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 34 -> d_field_service_inform_version_copy(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 40 -> d_field_service_inform_status(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 48 -> d_field_service_inform_at(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); + 10 -> d_field_service_inform_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 18 -> d_field_service_inform_props(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 24 -> d_field_service_inform_status(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); + 32 -> d_field_service_inform_timestamp(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 1 -> skip_64_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 2 -> skip_length_delimited_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 3 -> skip_group_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 5 -> skip_32_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) + 0 -> skip_varint_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 1 -> skip_64_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 2 -> skip_length_delimited_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 3 -> skip_group_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData); + 5 -> skip_32_service_inform(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, TrUserData) end end; -dg_read_field_def_service_inform(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _) -> #service_inform{name = F@_1, props = F@_2, version = F@_3, version_copy = F@_4, status = F@_5, at = F@_6}. +dg_read_field_def_service_inform(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, _) -> #service_inform{service_id = F@_1, props = F@_2, status = F@_3, timestamp = F@_4}. -d_field_service_inform_name(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_service_inform_name(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_service_inform_name(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +d_field_service_inform_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_service_inform_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_service_inform_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_service_inform(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). + dfp_read_field_def_service_inform(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, TrUserData). -d_field_service_inform_props(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_service_inform_props(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_service_inform_props(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +d_field_service_inform_props(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_service_inform_props(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_service_inform_props(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_service_inform(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, F@_6, TrUserData). + dfp_read_field_def_service_inform(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, TrUserData). -d_field_service_inform_version(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_service_inform_version(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_service_inform_version(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, F@_6, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_service_inform(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, F@_6, TrUserData). - -d_field_service_inform_version_copy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> - d_field_service_inform_version_copy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_service_inform_version_copy(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, F@_6, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_service_inform(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, F@_6, TrUserData). - -d_field_service_inform_status(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_service_inform_status(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_service_inform_status(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, F@_6, TrUserData) -> +d_field_service_inform_status(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_service_inform_status(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_service_inform_status(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, TrUserData) -> {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_service_inform(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, F@_6, TrUserData). + dfp_read_field_def_service_inform(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, TrUserData). -d_field_service_inform_at(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_service_inform_at(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_service_inform_at(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, _, TrUserData) -> +d_field_service_inform_timestamp(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> d_field_service_inform_timestamp(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +d_field_service_inform_timestamp(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, TrUserData) -> {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_service_inform(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, NewFValue, TrUserData). + dfp_read_field_def_service_inform(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, TrUserData). -skip_varint_service_inform(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> skip_varint_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -skip_varint_service_inform(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dfp_read_field_def_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). +skip_varint_service_inform(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> skip_varint_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +skip_varint_service_inform(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). -skip_length_delimited_service_inform(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> - skip_length_delimited_service_inform(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -skip_length_delimited_service_inform(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +skip_length_delimited_service_inform(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) when N < 57 -> skip_length_delimited_service_inform(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData); +skip_length_delimited_service_inform(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_service_inform(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). + dfp_read_field_def_service_inform(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, TrUserData). -skip_group_service_inform(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +skip_group_service_inform(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_service_inform(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). + dfp_read_field_def_service_inform(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, TrUserData). -skip_32_service_inform(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dfp_read_field_def_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). +skip_32_service_inform(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). -skip_64_service_inform(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dfp_read_field_def_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). +skip_64_service_inform(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData) -> dfp_read_field_def_service_inform(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, TrUserData). -decode_msg_feedback_step(Bin, TrUserData) -> dfp_read_field_def_feedback_step(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), TrUserData). +decode_msg_feedback_phase(Bin, TrUserData) -> dfp_read_field_def_feedback_phase(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData). -dfp_read_field_def_feedback_step(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_feedback_step_task_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_feedback_step(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_feedback_step_code(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_feedback_step(<<>>, 0, 0, _, F@_1, F@_2, _) -> #feedback_step{task_id = F@_1, code = F@_2}; -dfp_read_field_def_feedback_step(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_feedback_step(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). +dfp_read_field_def_feedback_phase(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_feedback_phase_task_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_feedback_phase(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_feedback_phase_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_feedback_phase(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_feedback_phase_timestamp(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_feedback_phase(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #feedback_phase{task_id = F@_1, phase = F@_2, timestamp = F@_3}; +dfp_read_field_def_feedback_phase(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_feedback_phase(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -dg_read_field_def_feedback_step(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_feedback_step(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_feedback_step(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> +dg_read_field_def_feedback_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_feedback_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_feedback_phase(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> d_field_feedback_step_task_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 16 -> d_field_feedback_step_code(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 10 -> d_field_feedback_phase_task_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_feedback_phase_phase(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 24 -> d_field_feedback_phase_timestamp(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_feedback_step(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_feedback_step(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_feedback_step(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_feedback_step(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_feedback_step(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + 0 -> skip_varint_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_feedback_phase(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) end end; -dg_read_field_def_feedback_step(<<>>, 0, 0, _, F@_1, F@_2, _) -> #feedback_step{task_id = F@_1, code = F@_2}. +dg_read_field_def_feedback_phase(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #feedback_phase{task_id = F@_1, phase = F@_2, timestamp = F@_3}. -d_field_feedback_step_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_feedback_step_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_feedback_step_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> +d_field_feedback_phase_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_feedback_phase_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_feedback_phase_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_feedback_step(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + dfp_read_field_def_feedback_phase(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). -d_field_feedback_step_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_feedback_step_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_feedback_step_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> +d_field_feedback_phase_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_feedback_phase_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_feedback_phase_phase(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_feedback_phase(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +d_field_feedback_phase_timestamp(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_feedback_phase_timestamp(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_feedback_phase_timestamp(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_feedback_step(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + dfp_read_field_def_feedback_phase(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). -skip_varint_feedback_step(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_feedback_step(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_feedback_step(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_feedback_step(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +skip_varint_feedback_phase(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_feedback_phase(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_length_delimited_feedback_step(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_feedback_step(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_feedback_step(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> +skip_length_delimited_feedback_phase(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_feedback_phase(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_feedback_phase(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_feedback_step(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + dfp_read_field_def_feedback_phase(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_feedback_step(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> +skip_group_feedback_phase(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_feedback_step(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + dfp_read_field_def_feedback_phase(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_feedback_step(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_feedback_step(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +skip_32_feedback_phase(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_feedback_step(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_feedback_step(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +skip_64_feedback_phase(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_feedback_phase(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -decode_msg_feedback_result(Bin, TrUserData) -> dfp_read_field_def_feedback_result(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). +decode_msg_event(Bin, TrUserData) -> dfp_read_field_def_event(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). -dfp_read_field_def_feedback_result(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_feedback_result_task_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_feedback_result(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_feedback_result_task_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_feedback_result(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_feedback_result_time(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_feedback_result(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_feedback_result_code(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_feedback_result(<<42, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_feedback_result_reason(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_feedback_result(<<50, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> d_field_feedback_result_error(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dfp_read_field_def_feedback_result(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _) -> #feedback_result{task_id = F@_1, task_type = F@_2, time = F@_3, code = F@_4, reason = F@_5, error = F@_6}; -dfp_read_field_def_feedback_result(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dg_read_field_def_feedback_result(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). +dfp_read_field_def_event(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_event_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_event(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_event_event_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_event(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_event_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #event{service_id = F@_1, event_type = F@_2, params = F@_3}; +dfp_read_field_def_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -dg_read_field_def_feedback_result(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 32 - 7 -> - dg_read_field_def_feedback_result(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -dg_read_field_def_feedback_result(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +dg_read_field_def_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> d_field_feedback_result_task_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 18 -> d_field_feedback_result_task_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 24 -> d_field_feedback_result_time(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 32 -> d_field_feedback_result_code(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 42 -> d_field_feedback_result_reason(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 50 -> d_field_feedback_result_error(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); + 10 -> d_field_event_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 16 -> d_field_event_event_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_event_params(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_feedback_result(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 1 -> skip_64_feedback_result(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 2 -> skip_length_delimited_feedback_result(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 3 -> skip_group_feedback_result(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); - 5 -> skip_32_feedback_result(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) + 0 -> skip_varint_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) end end; -dg_read_field_def_feedback_result(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, _) -> #feedback_result{task_id = F@_1, task_type = F@_2, time = F@_3, code = F@_4, reason = F@_5, error = F@_6}. +dg_read_field_def_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #event{service_id = F@_1, event_type = F@_2, params = F@_3}. -d_field_feedback_result_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_feedback_result_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_feedback_result_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +d_field_event_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_event_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_event_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_feedback_result(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). + dfp_read_field_def_event(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). -d_field_feedback_result_task_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_feedback_result_task_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_feedback_result_task_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, F@_6, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_feedback_result(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, F@_6, TrUserData). - -d_field_feedback_result_time(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_feedback_result_time(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_feedback_result_time(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, F@_6, TrUserData) -> +d_field_event_event_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_event_event_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_event_event_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_feedback_result(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, F@_6, TrUserData). + dfp_read_field_def_event(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). -d_field_feedback_result_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_feedback_result_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_feedback_result_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, F@_6, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_feedback_result(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, F@_6, TrUserData). - -d_field_feedback_result_reason(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_feedback_result_reason(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_feedback_result_reason(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, F@_6, TrUserData) -> +d_field_event_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_event_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_event_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_feedback_result(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, F@_6, TrUserData). + dfp_read_field_def_event(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). -d_field_feedback_result_error(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> d_field_feedback_result_error(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -d_field_feedback_result_error(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_feedback_result(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, NewFValue, TrUserData). +skip_varint_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_varint_feedback_result(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> skip_varint_feedback_result(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -skip_varint_feedback_result(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dfp_read_field_def_feedback_result(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). - -skip_length_delimited_feedback_result(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) when N < 57 -> - skip_length_delimited_feedback_result(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData); -skip_length_delimited_feedback_result(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +skip_length_delimited_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_feedback_result(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). + dfp_read_field_def_event(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_feedback_result(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> +skip_group_event(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_feedback_result(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). + dfp_read_field_def_event(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_feedback_result(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dfp_read_field_def_feedback_result(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). +skip_32_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_feedback_result(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData) -> dfp_read_field_def_feedback_result(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, F@_6, TrUserData). +skip_64_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -decode_msg_event(Bin, TrUserData) -> dfp_read_field_def_event(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). +decode_msg_ai_event(Bin, TrUserData) -> dfp_read_field_def_ai_event(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). -dfp_read_field_def_event(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_event_event_type(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_event(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_event_params(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #event{event_type = F@_1, params = F@_2}; -dfp_read_field_def_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). +dfp_read_field_def_ai_event(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ai_event_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_ai_event(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ai_event_event_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_ai_event(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_ai_event_params(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_ai_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #ai_event{service_id = F@_1, event_type = F@_2, params = F@_3}; +dfp_read_field_def_ai_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_ai_event(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -dg_read_field_def_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> +dg_read_field_def_ai_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_ai_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_ai_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 8 -> d_field_event_event_type(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_event_params(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 10 -> d_field_ai_event_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 16 -> d_field_ai_event_event_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_ai_event_params(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + 0 -> skip_varint_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) end end; -dg_read_field_def_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #event{event_type = F@_1, params = F@_2}. +dg_read_field_def_ai_event(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #ai_event{service_id = F@_1, event_type = F@_2, params = F@_3}. -d_field_event_event_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_event_event_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_event_event_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_event(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). - -d_field_event_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_event_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_event_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> +d_field_ai_event_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ai_event_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_ai_event_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_event(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + dfp_read_field_def_ai_event(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). -skip_varint_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +d_field_ai_event_event_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ai_event_event_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_ai_event_event_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_ai_event(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). -skip_length_delimited_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> +d_field_ai_event_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_ai_event_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_ai_event_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, + dfp_read_field_def_ai_event(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +skip_varint_ai_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_ai_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +skip_length_delimited_ai_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_ai_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_ai_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_event(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + dfp_read_field_def_ai_event(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_event(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> +skip_group_ai_event(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_event(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + dfp_read_field_def_ai_event(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +skip_32_ai_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -decode_msg_ai_event(Bin, TrUserData) -> dfp_read_field_def_ai_event(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_ai_event(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ai_event_event_type(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_ai_event(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ai_event_params(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_ai_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #ai_event{event_type = F@_1, params = F@_2}; -dfp_read_field_def_ai_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_ai_event(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). - -dg_read_field_def_ai_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_ai_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_ai_event(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_ai_event_event_type(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_ai_event_params(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_ai_event(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) - end - end; -dg_read_field_def_ai_event(<<>>, 0, 0, _, F@_1, F@_2, _) -> #ai_event{event_type = F@_1, params = F@_2}. - -d_field_ai_event_event_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ai_event_event_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_ai_event_event_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_ai_event(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). - -d_field_ai_event_params(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ai_event_params(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_ai_event_params(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_ai_event(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). - -skip_varint_ai_event(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_ai_event(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_length_delimited_ai_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_ai_event(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_ai_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_ai_event(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). - -skip_group_ai_event(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_ai_event(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). - -skip_32_ai_event(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_64_ai_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -decode_msg_directive(Bin, TrUserData) -> dfp_read_field_def_directive(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_directive(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_directive_device_uuid(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_directive(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_directive_version(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_directive(<<24, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_directive_directive_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_directive(<<32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_directive_timeout(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_directive(<<42, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_directive_directive(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dfp_read_field_def_directive(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, _) -> #directive{device_uuid = F@_1, version = F@_2, directive_type = F@_3, timeout = F@_4, directive = F@_5}; -dfp_read_field_def_directive(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dg_read_field_def_directive(Other, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -dg_read_field_def_directive(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 32 - 7 -> dg_read_field_def_directive(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -dg_read_field_def_directive(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> d_field_directive_device_uuid(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 18 -> d_field_directive_version(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 24 -> d_field_directive_directive_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 32 -> d_field_directive_timeout(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 42 -> d_field_directive_directive(Rest, 0, 0, 0, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_directive(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 1 -> skip_64_directive(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 2 -> skip_length_delimited_directive(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 3 -> skip_group_directive(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); - 5 -> skip_32_directive(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) - end - end; -dg_read_field_def_directive(<<>>, 0, 0, _, F@_1, F@_2, F@_3, F@_4, F@_5, _) -> #directive{device_uuid = F@_1, version = F@_2, directive_type = F@_3, timeout = F@_4, directive = F@_5}. - -d_field_directive_device_uuid(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_directive_device_uuid(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_directive_device_uuid(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_directive(RestF, 0, 0, F, NewFValue, F@_2, F@_3, F@_4, F@_5, TrUserData). - -d_field_directive_version(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_directive_version(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_directive_version(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_directive(RestF, 0, 0, F, F@_1, NewFValue, F@_3, F@_4, F@_5, TrUserData). - -d_field_directive_directive_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_directive_directive_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_directive_directive_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, F@_4, F@_5, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_directive(RestF, 0, 0, F, F@_1, F@_2, NewFValue, F@_4, F@_5, TrUserData). - -d_field_directive_timeout(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_directive_timeout(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_directive_timeout(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, _, F@_5, TrUserData) -> - {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, - dfp_read_field_def_directive(RestF, 0, 0, F, F@_1, F@_2, F@_3, NewFValue, F@_5, TrUserData). - -d_field_directive_directive(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> d_field_directive_directive(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -d_field_directive_directive(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_directive(RestF, 0, 0, F, F@_1, F@_2, F@_3, F@_4, NewFValue, TrUserData). - -skip_varint_directive(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> skip_varint_directive(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -skip_varint_directive(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_directive(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -skip_length_delimited_directive(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) when N < 57 -> skip_length_delimited_directive(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); -skip_length_delimited_directive(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_directive(Rest2, 0, 0, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -skip_group_directive(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_directive(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -skip_32_directive(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_directive(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -skip_64_directive(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_directive(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). - -'decode_msg_map'(Bin, TrUserData) -> 'dfp_read_field_def_map'(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). - -'dfp_read_field_def_map'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_map_key'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -'dfp_read_field_def_map'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_map_value'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -'dfp_read_field_def_map'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'map'{key = F@_1, value = F@_2}; -'dfp_read_field_def_map'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_map'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). - -'dg_read_field_def_map'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_map'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -'dg_read_field_def_map'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> 'd_field_map_key'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> 'd_field_map_value'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - _ -> - case Key band 7 of - 0 -> 'skip_varint_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> 'skip_64_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> 'skip_length_delimited_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> 'skip_group_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> 'skip_32_map'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) - end - end; -'dg_read_field_def_map'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'map'{key = F@_1, value = F@_2}. - -'d_field_map_key'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_map_key'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -'d_field_map_key'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - 'dfp_read_field_def_map'(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). - -'d_field_map_value'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_map_value'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -'d_field_map_value'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - 'dfp_read_field_def_map'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). - -'skip_varint_map'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_map'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -'skip_varint_map'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_map'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -'skip_length_delimited_map'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_map'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -'skip_length_delimited_map'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - 'dfp_read_field_def_map'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). - -'skip_group_map'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - 'dfp_read_field_def_map'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). - -'skip_32_map'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_map'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -'skip_64_map'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_map'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +skip_64_ai_event(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_ai_event(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). read_group(Bin, FieldNum) -> {NumBytes, EndTagLen} = read_gr_b(Bin, 0, 0, 0, 0, FieldNum), @@ -1919,16 +1885,17 @@ merge_msgs(Prev, New, MsgName, Opts) -> auth_request -> merge_msg_auth_request(Prev, New, TrUserData); auth_reply -> merge_msg_auth_reply(Prev, New, TrUserData); activate_push -> merge_msg_activate_push(Prev, New, TrUserData); - session_request -> merge_msg_session_request(Prev, New, TrUserData); - session_reply -> merge_msg_session_reply(Prev, New, TrUserData); + deploy -> merge_msg_deploy(Prev, New, TrUserData); + efka_response -> merge_msg_efka_response(Prev, New, TrUserData); + topic_message -> merge_msg_topic_message(Prev, New, TrUserData); + service_params -> merge_msg_service_params(Prev, New, TrUserData); + service_metrics -> merge_msg_service_metrics(Prev, New, TrUserData); data -> merge_msg_data(Prev, New, TrUserData); ping -> merge_msg_ping(Prev, New, TrUserData); service_inform -> merge_msg_service_inform(Prev, New, TrUserData); - feedback_step -> merge_msg_feedback_step(Prev, New, TrUserData); - feedback_result -> merge_msg_feedback_result(Prev, New, TrUserData); + feedback_phase -> merge_msg_feedback_phase(Prev, New, TrUserData); event -> merge_msg_event(Prev, New, TrUserData); - ai_event -> merge_msg_ai_event(Prev, New, TrUserData); - directive -> merge_msg_directive(Prev, New, TrUserData) + ai_event -> merge_msg_ai_event(Prev, New, TrUserData) end. -compile({nowarn_unused_function,merge_msg_auth_request/3}). @@ -1955,7 +1922,7 @@ merge_msg_auth_request(#auth_request{uuid = PFuuid, username = PFusername, salt end}. -compile({nowarn_unused_function,merge_msg_auth_reply/3}). -merge_msg_auth_reply(#auth_reply{code = PFcode, message = PFmessage, repository_url = PFrepository_url}, #auth_reply{code = NFcode, message = NFmessage, repository_url = NFrepository_url}, _) -> +merge_msg_auth_reply(#auth_reply{code = PFcode, message = PFmessage}, #auth_reply{code = NFcode, message = NFmessage}, _) -> #auth_reply{code = if NFcode =:= undefined -> PFcode; true -> NFcode @@ -1963,10 +1930,6 @@ merge_msg_auth_reply(#auth_reply{code = PFcode, message = PFmessage, repository_ message = if NFmessage =:= undefined -> PFmessage; true -> NFmessage - end, - repository_url = - if NFrepository_url =:= undefined -> PFrepository_url; - true -> NFrepository_url end}. -compile({nowarn_unused_function,merge_msg_activate_push/3}). @@ -1976,40 +1939,86 @@ merge_msg_activate_push(#activate_push{auth = PFauth}, #activate_push{auth = NFa true -> NFauth end}. --compile({nowarn_unused_function,merge_msg_session_request/3}). -merge_msg_session_request(_Prev, New, _TrUserData) -> New. +-compile({nowarn_unused_function,merge_msg_deploy/3}). +merge_msg_deploy(#deploy{task_id = PFtask_id, service_id = PFservice_id, tar_url = PFtar_url}, #deploy{task_id = NFtask_id, service_id = NFservice_id, tar_url = NFtar_url}, _) -> + #deploy{task_id = + if NFtask_id =:= undefined -> PFtask_id; + true -> NFtask_id + end, + service_id = + if NFservice_id =:= undefined -> PFservice_id; + true -> NFservice_id + end, + tar_url = + if NFtar_url =:= undefined -> PFtar_url; + true -> NFtar_url + end}. --compile({nowarn_unused_function,merge_msg_session_reply/3}). -merge_msg_session_reply(#session_reply{a = PFa}, #session_reply{a = NFa}, _) -> - #session_reply{a = - if NFa =:= undefined -> PFa; - true -> NFa +-compile({nowarn_unused_function,merge_msg_efka_response/3}). +merge_msg_efka_response(#efka_response{code = PFcode, result = PFresult, message = PFmessage}, #efka_response{code = NFcode, result = NFresult, message = NFmessage}, _) -> + #efka_response{code = + if NFcode =:= undefined -> PFcode; + true -> NFcode + end, + result = + if NFresult =:= undefined -> PFresult; + true -> NFresult + end, + message = + if NFmessage =:= undefined -> PFmessage; + true -> NFmessage end}. +-compile({nowarn_unused_function,merge_msg_topic_message/3}). +merge_msg_topic_message(#topic_message{topic = PFtopic, content = PFcontent}, #topic_message{topic = NFtopic, content = NFcontent}, _) -> + #topic_message{topic = + if NFtopic =:= undefined -> PFtopic; + true -> NFtopic + end, + content = + if NFcontent =:= undefined -> PFcontent; + true -> NFcontent + end}. + +-compile({nowarn_unused_function,merge_msg_service_params/3}). +merge_msg_service_params(#service_params{service_id = PFservice_id, params = PFparams, timeout = PFtimeout}, #service_params{service_id = NFservice_id, params = NFparams, timeout = NFtimeout}, _) -> + #service_params{service_id = + if NFservice_id =:= undefined -> PFservice_id; + true -> NFservice_id + end, + params = + if NFparams =:= undefined -> PFparams; + true -> NFparams + end, + timeout = + if NFtimeout =:= undefined -> PFtimeout; + true -> NFtimeout + end}. + +-compile({nowarn_unused_function,merge_msg_service_metrics/3}). +merge_msg_service_metrics(#service_metrics{service_id = PFservice_id, metrics = PFmetrics, timeout = PFtimeout}, #service_metrics{service_id = NFservice_id, metrics = NFmetrics, timeout = NFtimeout}, _) -> + #service_metrics{service_id = + if NFservice_id =:= undefined -> PFservice_id; + true -> NFservice_id + end, + metrics = + if NFmetrics =:= undefined -> PFmetrics; + true -> NFmetrics + end, + timeout = + if NFtimeout =:= undefined -> PFtimeout; + true -> NFtimeout + end}. + -compile({nowarn_unused_function,merge_msg_data/3}). -merge_msg_data(#data{device_uuid = PFdevice_uuid, service_name = PFservice_name, at = PFat, tags = PFtags, fields = PFfields}, #data{device_uuid = NFdevice_uuid, service_name = NFservice_name, at = NFat, tags = NFtags, fields = NFfields}, - TrUserData) -> - #data{device_uuid = - if NFdevice_uuid =:= undefined -> PFdevice_uuid; - true -> NFdevice_uuid +merge_msg_data(#data{service_id = PFservice_id, metric = PFmetric}, #data{service_id = NFservice_id, metric = NFmetric}, _) -> + #data{service_id = + if NFservice_id =:= undefined -> PFservice_id; + true -> NFservice_id end, - service_name = - if NFservice_name =:= undefined -> PFservice_name; - true -> NFservice_name - end, - at = - if NFat =:= undefined -> PFat; - true -> NFat - end, - tags = - if PFtags /= undefined, NFtags /= undefined -> 'tr_merge_data.tags'(PFtags, NFtags, TrUserData); - PFtags == undefined -> NFtags; - NFtags == undefined -> PFtags - end, - fields = - if PFfields /= undefined, NFfields /= undefined -> 'erlang_++'(PFfields, NFfields, TrUserData); - PFfields == undefined -> NFfields; - NFfields == undefined -> PFfields + metric = + if NFmetric =:= undefined -> PFmetric; + true -> NFmetric end}. -compile({nowarn_unused_function,merge_msg_ping/3}). @@ -2070,81 +2079,51 @@ merge_msg_ping(#ping{adcode = PFadcode, boot_time = PFboot_time, province = PFpr NFmemory == undefined -> PFmemory end, interfaces = - if PFinterfaces /= undefined, NFinterfaces /= undefined -> 'erlang_++'(PFinterfaces, NFinterfaces, TrUserData); - PFinterfaces == undefined -> NFinterfaces; - NFinterfaces == undefined -> PFinterfaces + if NFinterfaces =:= undefined -> PFinterfaces; + true -> NFinterfaces end}. -compile({nowarn_unused_function,merge_msg_service_inform/3}). -merge_msg_service_inform(#service_inform{name = PFname, props = PFprops, version = PFversion, version_copy = PFversion_copy, status = PFstatus, at = PFat}, - #service_inform{name = NFname, props = NFprops, version = NFversion, version_copy = NFversion_copy, status = NFstatus, at = NFat}, _) -> - #service_inform{name = - if NFname =:= undefined -> PFname; - true -> NFname +merge_msg_service_inform(#service_inform{service_id = PFservice_id, props = PFprops, status = PFstatus, timestamp = PFtimestamp}, #service_inform{service_id = NFservice_id, props = NFprops, status = NFstatus, timestamp = NFtimestamp}, _) -> + #service_inform{service_id = + if NFservice_id =:= undefined -> PFservice_id; + true -> NFservice_id end, props = if NFprops =:= undefined -> PFprops; true -> NFprops end, - version = - if NFversion =:= undefined -> PFversion; - true -> NFversion - end, - version_copy = - if NFversion_copy =:= undefined -> PFversion_copy; - true -> NFversion_copy - end, status = if NFstatus =:= undefined -> PFstatus; true -> NFstatus end, - at = - if NFat =:= undefined -> PFat; - true -> NFat + timestamp = + if NFtimestamp =:= undefined -> PFtimestamp; + true -> NFtimestamp end}. --compile({nowarn_unused_function,merge_msg_feedback_step/3}). -merge_msg_feedback_step(#feedback_step{task_id = PFtask_id, code = PFcode}, #feedback_step{task_id = NFtask_id, code = NFcode}, _) -> - #feedback_step{task_id = - if NFtask_id =:= undefined -> PFtask_id; - true -> NFtask_id - end, - code = - if NFcode =:= undefined -> PFcode; - true -> NFcode - end}. - --compile({nowarn_unused_function,merge_msg_feedback_result/3}). -merge_msg_feedback_result(#feedback_result{task_id = PFtask_id, task_type = PFtask_type, time = PFtime, code = PFcode, reason = PFreason, error = PFerror}, - #feedback_result{task_id = NFtask_id, task_type = NFtask_type, time = NFtime, code = NFcode, reason = NFreason, error = NFerror}, _) -> - #feedback_result{task_id = - if NFtask_id =:= undefined -> PFtask_id; - true -> NFtask_id - end, - task_type = - if NFtask_type =:= undefined -> PFtask_type; - true -> NFtask_type - end, - time = - if NFtime =:= undefined -> PFtime; - true -> NFtime - end, - code = - if NFcode =:= undefined -> PFcode; - true -> NFcode - end, - reason = - if NFreason =:= undefined -> PFreason; - true -> NFreason - end, - error = - if NFerror =:= undefined -> PFerror; - true -> NFerror - end}. +-compile({nowarn_unused_function,merge_msg_feedback_phase/3}). +merge_msg_feedback_phase(#feedback_phase{task_id = PFtask_id, phase = PFphase, timestamp = PFtimestamp}, #feedback_phase{task_id = NFtask_id, phase = NFphase, timestamp = NFtimestamp}, _) -> + #feedback_phase{task_id = + if NFtask_id =:= undefined -> PFtask_id; + true -> NFtask_id + end, + phase = + if NFphase =:= undefined -> PFphase; + true -> NFphase + end, + timestamp = + if NFtimestamp =:= undefined -> PFtimestamp; + true -> NFtimestamp + end}. -compile({nowarn_unused_function,merge_msg_event/3}). -merge_msg_event(#event{event_type = PFevent_type, params = PFparams}, #event{event_type = NFevent_type, params = NFparams}, _) -> - #event{event_type = +merge_msg_event(#event{service_id = PFservice_id, event_type = PFevent_type, params = PFparams}, #event{service_id = NFservice_id, event_type = NFevent_type, params = NFparams}, _) -> + #event{service_id = + if NFservice_id =:= undefined -> PFservice_id; + true -> NFservice_id + end, + event_type = if NFevent_type =:= undefined -> PFevent_type; true -> NFevent_type end, @@ -2154,8 +2133,12 @@ merge_msg_event(#event{event_type = PFevent_type, params = PFparams}, #event{eve end}. -compile({nowarn_unused_function,merge_msg_ai_event/3}). -merge_msg_ai_event(#ai_event{event_type = PFevent_type, params = PFparams}, #ai_event{event_type = NFevent_type, params = NFparams}, _) -> - #ai_event{event_type = +merge_msg_ai_event(#ai_event{service_id = PFservice_id, event_type = PFevent_type, params = PFparams}, #ai_event{service_id = NFservice_id, event_type = NFevent_type, params = NFparams}, _) -> + #ai_event{service_id = + if NFservice_id =:= undefined -> PFservice_id; + true -> NFservice_id + end, + event_type = if NFevent_type =:= undefined -> PFevent_type; true -> NFevent_type end, @@ -2164,30 +2147,6 @@ merge_msg_ai_event(#ai_event{event_type = PFevent_type, params = PFparams}, #ai_ true -> NFparams end}. --compile({nowarn_unused_function,merge_msg_directive/3}). -merge_msg_directive(#directive{device_uuid = PFdevice_uuid, version = PFversion, directive_type = PFdirective_type, timeout = PFtimeout, directive = PFdirective}, - #directive{device_uuid = NFdevice_uuid, version = NFversion, directive_type = NFdirective_type, timeout = NFtimeout, directive = NFdirective}, _) -> - #directive{device_uuid = - if NFdevice_uuid =:= undefined -> PFdevice_uuid; - true -> NFdevice_uuid - end, - version = - if NFversion =:= undefined -> PFversion; - true -> NFversion - end, - directive_type = - if NFdirective_type =:= undefined -> PFdirective_type; - true -> NFdirective_type - end, - timeout = - if NFtimeout =:= undefined -> PFtimeout; - true -> NFtimeout - end, - directive = - if NFdirective =:= undefined -> PFdirective; - true -> NFdirective - end}. - verify_msg(Msg) when tuple_size(Msg) >= 1 -> verify_msg(Msg, element(1, Msg), []); verify_msg(X) -> mk_type_error(not_a_known_message, X, []). @@ -2202,16 +2161,17 @@ verify_msg(Msg, MsgName, Opts) -> auth_request -> v_msg_auth_request(Msg, [MsgName], TrUserData); auth_reply -> v_msg_auth_reply(Msg, [MsgName], TrUserData); activate_push -> v_msg_activate_push(Msg, [MsgName], TrUserData); - session_request -> v_msg_session_request(Msg, [MsgName], TrUserData); - session_reply -> v_msg_session_reply(Msg, [MsgName], TrUserData); + deploy -> v_msg_deploy(Msg, [MsgName], TrUserData); + efka_response -> v_msg_efka_response(Msg, [MsgName], TrUserData); + topic_message -> v_msg_topic_message(Msg, [MsgName], TrUserData); + service_params -> v_msg_service_params(Msg, [MsgName], TrUserData); + service_metrics -> v_msg_service_metrics(Msg, [MsgName], TrUserData); data -> v_msg_data(Msg, [MsgName], TrUserData); ping -> v_msg_ping(Msg, [MsgName], TrUserData); service_inform -> v_msg_service_inform(Msg, [MsgName], TrUserData); - feedback_step -> v_msg_feedback_step(Msg, [MsgName], TrUserData); - feedback_result -> v_msg_feedback_result(Msg, [MsgName], TrUserData); + feedback_phase -> v_msg_feedback_phase(Msg, [MsgName], TrUserData); event -> v_msg_event(Msg, [MsgName], TrUserData); ai_event -> v_msg_ai_event(Msg, [MsgName], TrUserData); - directive -> v_msg_directive(Msg, [MsgName], TrUserData); _ -> mk_type_error(not_a_known_message, Msg, []) end. @@ -2239,16 +2199,13 @@ v_msg_auth_request(X, Path, _TrUserData) -> mk_type_error({expected_msg, auth_re -compile({nowarn_unused_function,v_msg_auth_reply/3}). -dialyzer({nowarn_function,v_msg_auth_reply/3}). -v_msg_auth_reply(#auth_reply{code = F1, message = F2, repository_url = F3}, Path, TrUserData) -> +v_msg_auth_reply(#auth_reply{code = F1, message = F2}, Path, TrUserData) -> if F1 == undefined -> ok; true -> v_type_uint32(F1, [code | Path], TrUserData) end, if F2 == undefined -> ok; true -> v_type_string(F2, [message | Path], TrUserData) end, - if F3 == undefined -> ok; - true -> v_type_string(F3, [repository_url | Path], TrUserData) - end, ok; v_msg_auth_reply(X, Path, _TrUserData) -> mk_type_error({expected_msg, auth_reply}, X, Path). @@ -2261,37 +2218,86 @@ v_msg_activate_push(#activate_push{auth = F1}, Path, TrUserData) -> ok; v_msg_activate_push(X, Path, _TrUserData) -> mk_type_error({expected_msg, activate_push}, X, Path). --compile({nowarn_unused_function,v_msg_session_request/3}). --dialyzer({nowarn_function,v_msg_session_request/3}). -v_msg_session_request(#session_request{}, _Path, _) -> ok; -v_msg_session_request(X, Path, _TrUserData) -> mk_type_error({expected_msg, session_request}, X, Path). - --compile({nowarn_unused_function,v_msg_session_reply/3}). --dialyzer({nowarn_function,v_msg_session_reply/3}). -v_msg_session_reply(#session_reply{a = F1}, Path, TrUserData) -> +-compile({nowarn_unused_function,v_msg_deploy/3}). +-dialyzer({nowarn_function,v_msg_deploy/3}). +v_msg_deploy(#deploy{task_id = F1, service_id = F2, tar_url = F3}, Path, TrUserData) -> if F1 == undefined -> ok; - true -> v_type_bool(F1, [a | Path], TrUserData) + true -> v_type_uint32(F1, [task_id | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [service_id | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_string(F3, [tar_url | Path], TrUserData) end, ok; -v_msg_session_reply(X, Path, _TrUserData) -> mk_type_error({expected_msg, session_reply}, X, Path). +v_msg_deploy(X, Path, _TrUserData) -> mk_type_error({expected_msg, deploy}, X, Path). + +-compile({nowarn_unused_function,v_msg_efka_response/3}). +-dialyzer({nowarn_function,v_msg_efka_response/3}). +v_msg_efka_response(#efka_response{code = F1, result = F2, message = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_int32(F1, [code | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [result | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_string(F3, [message | Path], TrUserData) + end, + ok; +v_msg_efka_response(X, Path, _TrUserData) -> mk_type_error({expected_msg, efka_response}, X, Path). + +-compile({nowarn_unused_function,v_msg_topic_message/3}). +-dialyzer({nowarn_function,v_msg_topic_message/3}). +v_msg_topic_message(#topic_message{topic = F1, content = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [topic | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [content | Path], TrUserData) + end, + ok; +v_msg_topic_message(X, Path, _TrUserData) -> mk_type_error({expected_msg, topic_message}, X, Path). + +-compile({nowarn_unused_function,v_msg_service_params/3}). +-dialyzer({nowarn_function,v_msg_service_params/3}). +v_msg_service_params(#service_params{service_id = F1, params = F2, timeout = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [service_id | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [params | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_uint32(F3, [timeout | Path], TrUserData) + end, + ok; +v_msg_service_params(X, Path, _TrUserData) -> mk_type_error({expected_msg, service_params}, X, Path). + +-compile({nowarn_unused_function,v_msg_service_metrics/3}). +-dialyzer({nowarn_function,v_msg_service_metrics/3}). +v_msg_service_metrics(#service_metrics{service_id = F1, metrics = F2, timeout = F3}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_string(F1, [service_id | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [metrics | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_uint32(F3, [timeout | Path], TrUserData) + end, + ok; +v_msg_service_metrics(X, Path, _TrUserData) -> mk_type_error({expected_msg, service_metrics}, X, Path). -compile({nowarn_unused_function,v_msg_data/3}). -dialyzer({nowarn_function,v_msg_data/3}). -v_msg_data(#data{device_uuid = F1, service_name = F2, at = F3, tags = F4, fields = F5}, Path, TrUserData) -> +v_msg_data(#data{service_id = F1, metric = F2}, Path, TrUserData) -> if F1 == undefined -> ok; - true -> v_type_string(F1, [device_uuid | Path], TrUserData) + true -> v_type_string(F1, [service_id | Path], TrUserData) end, if F2 == undefined -> ok; - true -> v_type_string(F2, [service_name | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_int32(F3, [at | Path], TrUserData) - end, - 'v_map'(F4, [tags | Path], TrUserData), - if is_list(F5) -> - _ = [v_type_bytes(Elem, [fields | Path], TrUserData) || Elem <- F5], - ok; - true -> mk_type_error({invalid_list_of, bytes}, F5, [fields | Path]) + true -> v_type_string(F2, [metric | Path], TrUserData) end, ok; v_msg_data(X, Path, _TrUserData) -> mk_type_error({expected_msg, data}, X, Path). @@ -2341,119 +2347,75 @@ v_msg_ping(#ping{adcode = F1, boot_time = F2, province = F3, city = F4, efka_ver ok; true -> mk_type_error({invalid_list_of, int32}, F12, [memory | Path]) end, - if is_list(F13) -> - _ = [v_type_bytes(Elem, [interfaces | Path], TrUserData) || Elem <- F13], - ok; - true -> mk_type_error({invalid_list_of, bytes}, F13, [interfaces | Path]) + if F13 == undefined -> ok; + true -> v_type_string(F13, [interfaces | Path], TrUserData) end, ok; v_msg_ping(X, Path, _TrUserData) -> mk_type_error({expected_msg, ping}, X, Path). -compile({nowarn_unused_function,v_msg_service_inform/3}). -dialyzer({nowarn_function,v_msg_service_inform/3}). -v_msg_service_inform(#service_inform{name = F1, props = F2, version = F3, version_copy = F4, status = F5, at = F6}, Path, TrUserData) -> +v_msg_service_inform(#service_inform{service_id = F1, props = F2, status = F3, timestamp = F4}, Path, TrUserData) -> if F1 == undefined -> ok; - true -> v_type_string(F1, [name | Path], TrUserData) + true -> v_type_string(F1, [service_id | Path], TrUserData) end, if F2 == undefined -> ok; true -> v_type_string(F2, [props | Path], TrUserData) end, if F3 == undefined -> ok; - true -> v_type_string(F3, [version | Path], TrUserData) + true -> v_type_uint32(F3, [status | Path], TrUserData) end, if F4 == undefined -> ok; - true -> v_type_string(F4, [version_copy | Path], TrUserData) - end, - if F5 == undefined -> ok; - true -> v_type_uint32(F5, [status | Path], TrUserData) - end, - if F6 == undefined -> ok; - true -> v_type_uint32(F6, [at | Path], TrUserData) + true -> v_type_uint32(F4, [timestamp | Path], TrUserData) end, ok; v_msg_service_inform(X, Path, _TrUserData) -> mk_type_error({expected_msg, service_inform}, X, Path). --compile({nowarn_unused_function,v_msg_feedback_step/3}). --dialyzer({nowarn_function,v_msg_feedback_step/3}). -v_msg_feedback_step(#feedback_step{task_id = F1, code = F2}, Path, TrUserData) -> +-compile({nowarn_unused_function,v_msg_feedback_phase/3}). +-dialyzer({nowarn_function,v_msg_feedback_phase/3}). +v_msg_feedback_phase(#feedback_phase{task_id = F1, phase = F2, timestamp = F3}, Path, TrUserData) -> if F1 == undefined -> ok; true -> v_type_string(F1, [task_id | Path], TrUserData) end, if F2 == undefined -> ok; - true -> v_type_uint32(F2, [code | Path], TrUserData) - end, - ok; -v_msg_feedback_step(X, Path, _TrUserData) -> mk_type_error({expected_msg, feedback_step}, X, Path). - --compile({nowarn_unused_function,v_msg_feedback_result/3}). --dialyzer({nowarn_function,v_msg_feedback_result/3}). -v_msg_feedback_result(#feedback_result{task_id = F1, task_type = F2, time = F3, code = F4, reason = F5, error = F6}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_string(F1, [task_id | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_string(F2, [task_type | Path], TrUserData) + true -> v_type_string(F2, [phase | Path], TrUserData) end, if F3 == undefined -> ok; - true -> v_type_uint32(F3, [time | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_uint32(F4, [code | Path], TrUserData) - end, - if F5 == undefined -> ok; - true -> v_type_string(F5, [reason | Path], TrUserData) - end, - if F6 == undefined -> ok; - true -> v_type_string(F6, [error | Path], TrUserData) + true -> v_type_uint32(F3, [timestamp | Path], TrUserData) end, ok; -v_msg_feedback_result(X, Path, _TrUserData) -> mk_type_error({expected_msg, feedback_result}, X, Path). +v_msg_feedback_phase(X, Path, _TrUserData) -> mk_type_error({expected_msg, feedback_phase}, X, Path). -compile({nowarn_unused_function,v_msg_event/3}). -dialyzer({nowarn_function,v_msg_event/3}). -v_msg_event(#event{event_type = F1, params = F2}, Path, TrUserData) -> +v_msg_event(#event{service_id = F1, event_type = F2, params = F3}, Path, TrUserData) -> if F1 == undefined -> ok; - true -> v_type_uint32(F1, [event_type | Path], TrUserData) + true -> v_type_string(F1, [service_id | Path], TrUserData) end, if F2 == undefined -> ok; - true -> v_type_bytes(F2, [params | Path], TrUserData) + true -> v_type_uint32(F2, [event_type | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_string(F3, [params | Path], TrUserData) end, ok; v_msg_event(X, Path, _TrUserData) -> mk_type_error({expected_msg, event}, X, Path). -compile({nowarn_unused_function,v_msg_ai_event/3}). -dialyzer({nowarn_function,v_msg_ai_event/3}). -v_msg_ai_event(#ai_event{event_type = F1, params = F2}, Path, TrUserData) -> +v_msg_ai_event(#ai_event{service_id = F1, event_type = F2, params = F3}, Path, TrUserData) -> if F1 == undefined -> ok; - true -> v_type_uint32(F1, [event_type | Path], TrUserData) + true -> v_type_string(F1, [service_id | Path], TrUserData) end, if F2 == undefined -> ok; - true -> v_type_bytes(F2, [params | Path], TrUserData) + true -> v_type_uint32(F2, [event_type | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_string(F3, [params | Path], TrUserData) end, ok; v_msg_ai_event(X, Path, _TrUserData) -> mk_type_error({expected_msg, ai_event}, X, Path). --compile({nowarn_unused_function,v_msg_directive/3}). --dialyzer({nowarn_function,v_msg_directive/3}). -v_msg_directive(#directive{device_uuid = F1, version = F2, directive_type = F3, timeout = F4, directive = F5}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_string(F1, [device_uuid | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_string(F2, [version | Path], TrUserData) - end, - if F3 == undefined -> ok; - true -> v_type_uint32(F3, [directive_type | Path], TrUserData) - end, - if F4 == undefined -> ok; - true -> v_type_uint32(F4, [timeout | Path], TrUserData) - end, - if F5 == undefined -> ok; - true -> v_type_bytes(F5, [directive | Path], TrUserData) - end, - ok; -v_msg_directive(X, Path, _TrUserData) -> mk_type_error({expected_msg, directive}, X, Path). - -compile({nowarn_unused_function,v_type_int32/3}). -dialyzer({nowarn_function,v_type_int32/3}). v_type_int32(N, _Path, _TrUserData) when is_integer(N), -2147483648 =< N, N =< 2147483647 -> ok; @@ -2494,25 +2456,6 @@ v_type_string(S, Path, _TrUserData) when is_list(S); is_binary(S) -> end; v_type_string(X, Path, _TrUserData) -> mk_type_error(bad_unicode_string, X, Path). --compile({nowarn_unused_function,v_type_bytes/3}). --dialyzer({nowarn_function,v_type_bytes/3}). -v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> ok; -v_type_bytes(B, _Path, _TrUserData) when is_list(B) -> ok; -v_type_bytes(X, Path, _TrUserData) -> mk_type_error(bad_binary_value, X, Path). - --compile({nowarn_unused_function,'v_map'/3}). --dialyzer({nowarn_function,'v_map'/3}). -'v_map'(KVs, Path, TrUserData) when is_list(KVs) -> - [case X of - {Key, Value} -> - v_type_string(Key, [key | Path], TrUserData), - v_type_string(Value, [value | Path], TrUserData); - _ -> mk_type_error(invalid_key_value_tuple, X, Path) - end - || X <- KVs], - ok; -'v_map'(X, Path, _TrUserData) -> mk_type_error(invalid_list_of_key_value_tuples, X, Path). - -compile({nowarn_unused_function,mk_type_error/3}). -spec mk_type_error(_, _, list()) -> no_return(). mk_type_error(Error, ValueSeen, Path) -> @@ -2548,43 +2491,6 @@ cons(Elem, Acc, _TrUserData) -> [Elem | Acc]. -compile({nowarn_unused_function,'erlang_++'/3}). -compile({inline,'erlang_++'/3}). 'erlang_++'(A, B, _TrUserData) -> A ++ B. --compile({inline,'tr_decode_init_default_data.tags'/2}). -'tr_decode_init_default_data.tags'(_, _) -> mt_empty_map_r(). - --compile({inline,'tr_merge_data.tags'/3}). -'tr_merge_data.tags'(X1, X2, _) -> mt_merge_maptuples_r(X1, X2). - --compile({inline,'tr_decode_repeated_finalize_data.tags'/2}). -'tr_decode_repeated_finalize_data.tags'(L, _) -> mt_finalize_items_r(L). - --compile({inline,'tr_decode_repeated_add_elem_data.tags'/3}). -'tr_decode_repeated_add_elem_data.tags'(Elem, L, _) -> mt_add_item_r(Elem, L). - --compile({inline,'tr_encode_data.tags[x]'/2}). -'tr_encode_data.tags[x]'(X, _) -> mt_maptuple_to_pseudomsg_r(X, 'map'). - --compile({inline,mt_maptuple_to_pseudomsg_r/2}). -mt_maptuple_to_pseudomsg_r({K, V}, RName) -> {RName, K, V}. - - --compile({inline,mt_empty_map_r/0}). -mt_empty_map_r() -> []. - --compile({inline,mt_add_item_r/2}). -mt_add_item_r({_RName, K, V}, Acc) -> [{K, V} | Acc]. - - --compile({inline,mt_finalize_items_r/1}). -mt_finalize_items_r(Acc) -> mt_finalize_items_r_aux(lists:reverse(Acc), dict:new()). - -mt_finalize_items_r_aux([{K, V} | Tl], D) -> mt_finalize_items_r_aux(Tl, dict:store(K, V, D)); -mt_finalize_items_r_aux([], D) -> dict:to_list(D). - - --compile({inline,mt_merge_maptuples_r/2}). -mt_merge_maptuples_r(L1, L2) -> dict:to_list(dict:merge(fun (_Key, _V1, V2) -> V2 end, dict:from_list(L1), dict:from_list(L2))). - - get_msg_defs() -> @@ -2594,19 +2500,26 @@ get_msg_defs() -> #field{name = salt, fnum = 4, rnum = 4, type = string, occurrence = optional, opts = []}, #field{name = token, fnum = 5, rnum = 5, type = string, occurrence = optional, opts = []}, #field{name = timestamp, fnum = 6, rnum = 6, type = uint32, occurrence = optional, opts = []}]}, - {{msg, auth_reply}, - [#field{name = code, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, - #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = repository_url, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}, + {{msg, auth_reply}, [#field{name = code, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, {{msg, activate_push}, [#field{name = auth, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]}, - {{msg, session_request}, []}, - {{msg, session_reply}, [#field{name = a, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]}, - {{msg, data}, - [#field{name = device_uuid, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, - #field{name = service_name, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = at, fnum = 3, rnum = 4, type = int32, occurrence = optional, opts = []}, - #field{name = tags, fnum = 4, rnum = 5, type = {map, string, string}, occurrence = repeated, opts = []}, - #field{name = fields, fnum = 5, rnum = 6, type = bytes, occurrence = repeated, opts = []}]}, + {{msg, deploy}, + [#field{name = task_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #field{name = service_id, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = tar_url, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}, + {{msg, efka_response}, + [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, + #field{name = result, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = message, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}, + {{msg, topic_message}, [#field{name = topic, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = content, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, + {{msg, service_params}, + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = params, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = timeout, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}]}, + {{msg, service_metrics}, + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = metrics, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = timeout, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}]}, + {{msg, data}, [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, {{msg, ping}, [#field{name = adcode, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = boot_time, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, @@ -2620,39 +2533,33 @@ get_msg_defs() -> #field{name = cpu_temperature, fnum = 10, rnum = 11, type = float, occurrence = optional, opts = []}, #field{name = disk, fnum = 11, rnum = 12, type = int32, occurrence = repeated, opts = [packed]}, #field{name = memory, fnum = 12, rnum = 13, type = int32, occurrence = repeated, opts = [packed]}, - #field{name = interfaces, fnum = 13, rnum = 14, type = bytes, occurrence = repeated, opts = []}]}, + #field{name = interfaces, fnum = 13, rnum = 14, type = string, occurrence = optional, opts = []}]}, {{msg, service_inform}, - [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = props, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = version, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}, - #field{name = version_copy, fnum = 4, rnum = 5, type = string, occurrence = optional, opts = []}, - #field{name = status, fnum = 5, rnum = 6, type = uint32, occurrence = optional, opts = []}, - #field{name = at, fnum = 6, rnum = 7, type = uint32, occurrence = optional, opts = []}]}, - {{msg, feedback_step}, [#field{name = task_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = code, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}]}, - {{msg, feedback_result}, + #field{name = status, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}, + #field{name = timestamp, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}]}, + {{msg, feedback_phase}, [#field{name = task_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, - #field{name = task_type, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = time, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}, - #field{name = code, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}, - #field{name = reason, fnum = 5, rnum = 6, type = string, occurrence = optional, opts = []}, - #field{name = error, fnum = 6, rnum = 7, type = string, occurrence = optional, opts = []}]}, - {{msg, event}, [#field{name = event_type, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, - {{msg, ai_event}, [#field{name = event_type, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, - {{msg, directive}, - [#field{name = device_uuid, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, - #field{name = version, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = directive_type, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}, - #field{name = timeout, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}, - #field{name = directive, fnum = 5, rnum = 6, type = bytes, occurrence = optional, opts = []}]}]. + #field{name = phase, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = timestamp, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}]}, + {{msg, event}, + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, + #field{name = params, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}, + {{msg, ai_event}, + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, + #field{name = params, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}]. -get_msg_names() -> [auth_request, auth_reply, activate_push, session_request, session_reply, data, ping, service_inform, feedback_step, feedback_result, event, ai_event, directive]. +get_msg_names() -> [auth_request, auth_reply, activate_push, deploy, efka_response, topic_message, service_params, service_metrics, data, ping, service_inform, feedback_phase, event, ai_event]. get_group_names() -> []. -get_msg_or_group_names() -> [auth_request, auth_reply, activate_push, session_request, session_reply, data, ping, service_inform, feedback_step, feedback_result, event, ai_event, directive]. +get_msg_or_group_names() -> [auth_request, auth_reply, activate_push, deploy, efka_response, topic_message, service_params, service_metrics, data, ping, service_inform, feedback_phase, event, ai_event]. get_enum_names() -> []. @@ -2675,19 +2582,26 @@ find_msg_def(auth_request) -> #field{name = salt, fnum = 4, rnum = 4, type = string, occurrence = optional, opts = []}, #field{name = token, fnum = 5, rnum = 5, type = string, occurrence = optional, opts = []}, #field{name = timestamp, fnum = 6, rnum = 6, type = uint32, occurrence = optional, opts = []}]; -find_msg_def(auth_reply) -> - [#field{name = code, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, - #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = repository_url, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]; +find_msg_def(auth_reply) -> [#field{name = code, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; find_msg_def(activate_push) -> [#field{name = auth, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]; -find_msg_def(session_request) -> []; -find_msg_def(session_reply) -> [#field{name = a, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]; -find_msg_def(data) -> - [#field{name = device_uuid, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, - #field{name = service_name, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = at, fnum = 3, rnum = 4, type = int32, occurrence = optional, opts = []}, - #field{name = tags, fnum = 4, rnum = 5, type = {map, string, string}, occurrence = repeated, opts = []}, - #field{name = fields, fnum = 5, rnum = 6, type = bytes, occurrence = repeated, opts = []}]; +find_msg_def(deploy) -> + [#field{name = task_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #field{name = service_id, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = tar_url, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]; +find_msg_def(efka_response) -> + [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, + #field{name = result, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = message, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]; +find_msg_def(topic_message) -> [#field{name = topic, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = content, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; +find_msg_def(service_params) -> + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = params, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = timeout, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}]; +find_msg_def(service_metrics) -> + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = metrics, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = timeout, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}]; +find_msg_def(data) -> [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; find_msg_def(ping) -> [#field{name = adcode, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = boot_time, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, @@ -2701,30 +2615,24 @@ find_msg_def(ping) -> #field{name = cpu_temperature, fnum = 10, rnum = 11, type = float, occurrence = optional, opts = []}, #field{name = disk, fnum = 11, rnum = 12, type = int32, occurrence = repeated, opts = [packed]}, #field{name = memory, fnum = 12, rnum = 13, type = int32, occurrence = repeated, opts = [packed]}, - #field{name = interfaces, fnum = 13, rnum = 14, type = bytes, occurrence = repeated, opts = []}]; + #field{name = interfaces, fnum = 13, rnum = 14, type = string, occurrence = optional, opts = []}]; find_msg_def(service_inform) -> - [#field{name = name, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = props, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = version, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}, - #field{name = version_copy, fnum = 4, rnum = 5, type = string, occurrence = optional, opts = []}, - #field{name = status, fnum = 5, rnum = 6, type = uint32, occurrence = optional, opts = []}, - #field{name = at, fnum = 6, rnum = 7, type = uint32, occurrence = optional, opts = []}]; -find_msg_def(feedback_step) -> [#field{name = task_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = code, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}]; -find_msg_def(feedback_result) -> + #field{name = status, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}, + #field{name = timestamp, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}]; +find_msg_def(feedback_phase) -> [#field{name = task_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, - #field{name = task_type, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = time, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}, - #field{name = code, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}, - #field{name = reason, fnum = 5, rnum = 6, type = string, occurrence = optional, opts = []}, - #field{name = error, fnum = 6, rnum = 7, type = string, occurrence = optional, opts = []}]; -find_msg_def(event) -> [#field{name = event_type, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; -find_msg_def(ai_event) -> [#field{name = event_type, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; -find_msg_def(directive) -> - [#field{name = device_uuid, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, - #field{name = version, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, - #field{name = directive_type, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}, - #field{name = timeout, fnum = 4, rnum = 5, type = uint32, occurrence = optional, opts = []}, - #field{name = directive, fnum = 5, rnum = 6, type = bytes, occurrence = optional, opts = []}]; + #field{name = phase, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = timestamp, fnum = 3, rnum = 4, type = uint32, occurrence = optional, opts = []}]; +find_msg_def(event) -> + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, + #field{name = params, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]; +find_msg_def(ai_event) -> + [#field{name = service_id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, + #field{name = event_type, fnum = 2, rnum = 3, type = uint32, occurrence = optional, opts = []}, + #field{name = params, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]; find_msg_def(_) -> error. @@ -2786,32 +2694,34 @@ service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S fqbin_to_msg_name(<<"AuthRequest">>) -> auth_request; fqbin_to_msg_name(<<"AuthReply">>) -> auth_reply; fqbin_to_msg_name(<<"ActivatePush">>) -> activate_push; -fqbin_to_msg_name(<<"SessionRequest">>) -> session_request; -fqbin_to_msg_name(<<"SessionReply">>) -> session_reply; +fqbin_to_msg_name(<<"Deploy">>) -> deploy; +fqbin_to_msg_name(<<"EfkaResponse">>) -> efka_response; +fqbin_to_msg_name(<<"TopicMessage">>) -> topic_message; +fqbin_to_msg_name(<<"ServiceParams">>) -> service_params; +fqbin_to_msg_name(<<"ServiceMetrics">>) -> service_metrics; fqbin_to_msg_name(<<"Data">>) -> data; fqbin_to_msg_name(<<"Ping">>) -> ping; fqbin_to_msg_name(<<"ServiceInform">>) -> service_inform; -fqbin_to_msg_name(<<"FeedbackStep">>) -> feedback_step; -fqbin_to_msg_name(<<"FeedbackResult">>) -> feedback_result; +fqbin_to_msg_name(<<"FeedbackPhase">>) -> feedback_phase; fqbin_to_msg_name(<<"Event">>) -> event; fqbin_to_msg_name(<<"AIEvent">>) -> ai_event; -fqbin_to_msg_name(<<"Directive">>) -> directive; fqbin_to_msg_name(E) -> error({gpb_error, {badmsg, E}}). msg_name_to_fqbin(auth_request) -> <<"AuthRequest">>; msg_name_to_fqbin(auth_reply) -> <<"AuthReply">>; msg_name_to_fqbin(activate_push) -> <<"ActivatePush">>; -msg_name_to_fqbin(session_request) -> <<"SessionRequest">>; -msg_name_to_fqbin(session_reply) -> <<"SessionReply">>; +msg_name_to_fqbin(deploy) -> <<"Deploy">>; +msg_name_to_fqbin(efka_response) -> <<"EfkaResponse">>; +msg_name_to_fqbin(topic_message) -> <<"TopicMessage">>; +msg_name_to_fqbin(service_params) -> <<"ServiceParams">>; +msg_name_to_fqbin(service_metrics) -> <<"ServiceMetrics">>; msg_name_to_fqbin(data) -> <<"Data">>; msg_name_to_fqbin(ping) -> <<"Ping">>; msg_name_to_fqbin(service_inform) -> <<"ServiceInform">>; -msg_name_to_fqbin(feedback_step) -> <<"FeedbackStep">>; -msg_name_to_fqbin(feedback_result) -> <<"FeedbackResult">>; +msg_name_to_fqbin(feedback_phase) -> <<"FeedbackPhase">>; msg_name_to_fqbin(event) -> <<"Event">>; msg_name_to_fqbin(ai_event) -> <<"AIEvent">>; -msg_name_to_fqbin(directive) -> <<"Directive">>; msg_name_to_fqbin(E) -> error({gpb_error, {badmsg, E}}). @@ -2850,7 +2760,7 @@ get_all_source_basenames() -> ["message_pb.proto"]. get_all_proto_names() -> ["message_pb"]. -get_msg_containment("message_pb") -> [ai_event, activate_push, auth_reply, auth_request, data, directive, event, feedback_result, feedback_step, ping, service_inform, session_reply, session_request]; +get_msg_containment("message_pb") -> [ai_event, activate_push, auth_reply, auth_request, data, deploy, efka_response, event, feedback_phase, ping, service_inform, service_metrics, service_params, topic_message]; get_msg_containment(P) -> error({gpb_error, {badproto, P}}). @@ -2870,17 +2780,18 @@ get_enum_containment("message_pb") -> []; get_enum_containment(P) -> error({gpb_error, {badproto, P}}). -get_proto_by_msg_name_as_fqbin(<<"FeedbackStep">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(<<"Data">>) -> "message_pb"; -get_proto_by_msg_name_as_fqbin(<<"SessionRequest">>) -> "message_pb"; -get_proto_by_msg_name_as_fqbin(<<"FeedbackResult">>) -> "message_pb"; +get_proto_by_msg_name_as_fqbin(<<"ServiceParams">>) -> "message_pb"; +get_proto_by_msg_name_as_fqbin(<<"ServiceMetrics">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(<<"Event">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(<<"AuthRequest">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(<<"AIEvent">>) -> "message_pb"; -get_proto_by_msg_name_as_fqbin(<<"Directive">>) -> "message_pb"; +get_proto_by_msg_name_as_fqbin(<<"TopicMessage">>) -> "message_pb"; +get_proto_by_msg_name_as_fqbin(<<"FeedbackPhase">>) -> "message_pb"; +get_proto_by_msg_name_as_fqbin(<<"EfkaResponse">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(<<"Ping">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(<<"ActivatePush">>) -> "message_pb"; -get_proto_by_msg_name_as_fqbin(<<"SessionReply">>) -> "message_pb"; +get_proto_by_msg_name_as_fqbin(<<"Deploy">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(<<"AuthReply">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(<<"ServiceInform">>) -> "message_pb"; get_proto_by_msg_name_as_fqbin(E) -> error({gpb_error, {badmsg, E}}).