diff --git a/config/sys-dev.config b/config/sys-dev.config index 5a27e22..5e82b3f 100644 --- a/config/sys-dev.config +++ b/config/sys-dev.config @@ -25,7 +25,7 @@ {port, 18080} ]}, - {api_url, "http://100.123.0.4/api/v1"}, + {api_url, "http://127.0.0.1:18090/simulator"}, %% 支持的协议 {endpoints, [ {support_protocols, [ diff --git a/include/message_pb.hrl b/include/message_pb.hrl index 6ddcd7e..8c94880 100644 --- a/include/message_pb.hrl +++ b/include/message_pb.hrl @@ -16,36 +16,6 @@ }). -endif. --ifndef('REPLYFRAME_PB_H'). --define('REPLYFRAME_PB_H', true). --record('ReplyFrame', - {packet_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits - reply :: {result, message_pb:'ReplyResult'()} | {error, message_pb:'ReplyError'()} | undefined % oneof - }). --endif. - --ifndef('REPLYRESULT_PB_H'). --define('REPLYRESULT_PB_H', true). --record('ReplyResult', - {data = <<>> :: iodata() | undefined % = 1, optional - }). --endif. - --ifndef('REPLYERROR_PB_H'). --define('REPLYERROR_PB_H', true). --record('ReplyError', - {code = 0 :: integer() | undefined, % = 1, optional, 32 bits - message = <<>> :: unicode:chardata() | undefined % = 2, optional - }). --endif. - --ifndef('CASTFRAME_PB_H'). --define('CASTFRAME_PB_H', true). --record('CastFrame', - {body :: {pub, message_pb:'Pub'()} | {command, message_pb:'Command'()} | {data, message_pb:'Data'()} | {event_stream, message_pb:'TaskEventStream'()} | undefined % oneof - }). --endif. - -ifndef('AUTHREQUEST_PB_H'). -define('AUTHREQUEST_PB_H', true). -record('AuthRequest', @@ -57,40 +27,63 @@ }). -endif. --ifndef('PUB_PB_H'). --define('PUB_PB_H', true). --record('Pub', +-ifndef('REPLYFRAME.ERROR_PB_H'). +-define('REPLYFRAME.ERROR_PB_H', true). +-record('ReplyFrame.Error', + {code = 0 :: integer() | undefined, % = 1, optional, 32 bits + message = <<>> :: unicode:chardata() | undefined % = 2, optional + }). +-endif. + +-ifndef('REPLYFRAME_PB_H'). +-define('REPLYFRAME_PB_H', true). +-record('ReplyFrame', + {packet_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits + reply :: {result, iodata()} | {error, message_pb:'ReplyFrame.Error'()} | undefined % oneof + }). +-endif. + +-ifndef('CASTFRAME.PUB_PB_H'). +-define('CASTFRAME.PUB_PB_H', true). +-record('CastFrame.Pub', {topic = <<>> :: iodata() | undefined, % = 1, optional qos = 0 :: integer() | undefined, % = 2, optional, 32 bits content = <<>> :: iodata() | undefined % = 3, optional }). -endif. --ifndef('COMMAND_PB_H'). --define('COMMAND_PB_H', true). --record('Command', +-ifndef('CASTFRAME.COMMAND_PB_H'). +-define('CASTFRAME.COMMAND_PB_H', true). +-record('CastFrame.Command', {command_type = 0 :: integer() | undefined, % = 1, optional, 32 bits command = <<>> :: iodata() | undefined % = 2, optional }). -endif. --ifndef('DATA_PB_H'). --define('DATA_PB_H', true). --record('Data', +-ifndef('CASTFRAME.DATA_PB_H'). +-define('CASTFRAME.DATA_PB_H', true). +-record('CastFrame.Data', {route_key = <<>> :: iodata() | undefined, % = 1, optional metric = <<>> :: iodata() | undefined % = 2, optional }). -endif. --ifndef('TASKEVENTSTREAM_PB_H'). --define('TASKEVENTSTREAM_PB_H', true). --record('TaskEventStream', +-ifndef('CASTFRAME.TASKEVENT_PB_H'). +-define('CASTFRAME.TASKEVENT_PB_H', true). +-record('CastFrame.TaskEvent', {task_id = 0 :: integer() | undefined, % = 1, optional, 32 bits type = <<>> :: iodata() | undefined, % = 2, optional stream = <<>> :: iodata() | undefined % = 3, optional }). -endif. +-ifndef('CASTFRAME_PB_H'). +-define('CASTFRAME_PB_H', true). +-record('CastFrame', + {body :: {pub, message_pb:'CastFrame.Pub'()} | {command, message_pb:'CastFrame.Command'()} | {data, message_pb:'CastFrame.Data'()} | {task_event, message_pb:'CastFrame.TaskEvent'()} | undefined % oneof + }). +-endif. + -ifndef('CONTAINERREF_PB_H'). -define('CONTAINERREF_PB_H', true). -record('ContainerRef', diff --git a/src/host/iot_host.erl b/src/host/iot_host.erl index c7e33c5..af1120f 100644 --- a/src/host/iot_host.erl +++ b/src/host/iot_host.erl @@ -130,12 +130,12 @@ remove_container(Pid, ContainerName) when is_pid(Pid), is_binary(ContainerName) {ok, Result :: binary()} | {error, Code :: integer(), Reason :: binary()}. await_reply(Pid, Ref, Timeout) when is_pid(Pid), is_reference(Ref), is_integer(Timeout) -> receive - {rpc_reply, Ref, #'ReplyFrame'{reply = {result, #'ReplyResult'{data = ResultBin}}}} -> + {request_reply, Ref, #'ReplyFrame'{reply = {result, ResultBin}}} -> {ok, iolist_to_binary(ResultBin)}; - {rpc_reply, Ref, #'ReplyFrame'{reply = {error, #'ReplyError'{code = Code, message = Message}}}} -> + {request_reply, Ref, #'ReplyFrame'{reply = {error, #'ReplyFrame.Error'{code = Code, message = Message}}}} -> {error, Code, unicode:characters_to_binary(Message)} after Timeout -> - ok = gen_statem:call(Pid, {cancel_rpc_call, Ref}), + ok = gen_statem:call(Pid, {cancel_request_call, Ref}), flush_reply(Ref), {error, -1, <<"timeout">>} end. @@ -214,18 +214,6 @@ handle_event({call, From}, get_status, _, State = #state{channel_pid = ChannelPi }, {keep_state, State, [{reply, From, {ok, Reply}}]}; -%% 只要channel存在,就负责将消息推送到边缘端主机 -handle_event({call, From}, {rpc_call, ReceiverPid, RpcCall}, _, State = #state{uuid = UUID, channel_pid = ChannelPid, has_session = HasSession}) -> - case HasSession andalso is_pid(ChannelPid) of - true -> - %% 通过websocket发送请求 - Ref = ssl_channel:rpc_call(ChannelPid, ReceiverPid, RpcCall), - {keep_state, State, [{reply, From, {ok, Ref}}]}; - false -> - logger:debug("[iot_host] uuid: ~p, invalid state: ~p", [UUID, state_map(State)]), - {keep_state, State, [{reply, From, {error, <<"主机离线,发送请求失败"/utf8>>}}]} - end; - handle_event({call, From}, {container_call, ReceiverPid, Request}, _, State = #state{uuid = UUID, channel_pid = ChannelPid, has_session = HasSession}) -> case HasSession andalso is_pid(ChannelPid) of true -> @@ -236,10 +224,10 @@ handle_event({call, From}, {container_call, ReceiverPid, Request}, _, State = #s {keep_state, State, [{reply, From, {error, <<"主机离线,发送请求失败"/utf8>>}}]} end; -handle_event({call, From}, {cancel_rpc_call, Ref}, _, State = #state{channel_pid = ChannelPid}) -> +handle_event({call, From}, {cancel_request_call, Ref}, _, State = #state{channel_pid = ChannelPid}) -> case is_pid(ChannelPid) of true -> - ok = ssl_channel:cancel_rpc_call(ChannelPid, Ref), + ok = ssl_channel:cancel_request_call(ChannelPid, Ref), {keep_state, State, [{reply, From, ok}]}; false -> {keep_state, State, [{reply, From, ok}]} @@ -316,7 +304,7 @@ handle_event({call, From}, {attach_channel, _}, _, State = #state{uuid = UUID, c {keep_state, State, [{reply, From, {error, <<"channel existed">>}}]}; %% 数据分发 -handle_event(cast, {handle, {data, #'Data'{route_key = RouteKey0, metric = Metric}}}, ?STATE_ACTIVATED, +handle_event(cast, {handle, {data, #'CastFrame.Data'{route_key = RouteKey0, metric = Metric}}}, ?STATE_ACTIVATED, State = #state{uuid = UUID, has_session = true}) -> RouteKey = iolist_to_binary(RouteKey0), MetricBin = iolist_to_binary(Metric), @@ -412,7 +400,7 @@ state_map(#state{host_id = HostId, uuid = UUID, has_session = HasSession, heartb flush_reply(Ref) -> receive - {rpc_reply, Ref, _Reply} -> + {request_reply, Ref, _Reply} -> ok after 0 -> ok diff --git a/src/iot_app.erl b/src/iot_app.erl index 6d341f5..d89b627 100644 --- a/src/iot_app.erl +++ b/src/iot_app.erl @@ -51,6 +51,7 @@ start_http_server() -> {"/host/[...]", http_protocol, [host_handler]}, {"/container/[...]", http_protocol, [container_handler]}, {"/endpoint/[...]", http_protocol, [endpoint_handler]}, + {"/simulator/[...]", http_protocol, [simulator_api_handler]}, {"/event_stream", event_stream_handler, []} ]} ]), diff --git a/src/protobuf/message_pb.erl b/src/protobuf/message_pb.erl index 38bc0cd..d21b13d 100644 --- a/src/protobuf/message_pb.erl +++ b/src/protobuf/message_pb.erl @@ -56,23 +56,21 @@ %% message types -type 'RequestFrame'() :: #'RequestFrame'{}. --type 'ReplyFrame'() :: #'ReplyFrame'{}. - --type 'ReplyResult'() :: #'ReplyResult'{}. - --type 'ReplyError'() :: #'ReplyError'{}. - --type 'CastFrame'() :: #'CastFrame'{}. - -type 'AuthRequest'() :: #'AuthRequest'{}. --type 'Pub'() :: #'Pub'{}. +-type 'ReplyFrame.Error'() :: #'ReplyFrame.Error'{}. --type 'Command'() :: #'Command'{}. +-type 'ReplyFrame'() :: #'ReplyFrame'{}. --type 'Data'() :: #'Data'{}. +-type 'CastFrame.Pub'() :: #'CastFrame.Pub'{}. --type 'TaskEventStream'() :: #'TaskEventStream'{}. +-type 'CastFrame.Command'() :: #'CastFrame.Command'{}. + +-type 'CastFrame.Data'() :: #'CastFrame.Data'{}. + +-type 'CastFrame.TaskEvent'() :: #'CastFrame.TaskEvent'{}. + +-type 'CastFrame'() :: #'CastFrame'{}. -type 'ContainerRef'() :: #'ContainerRef'{}. @@ -114,9 +112,9 @@ -type 'Ulimit'() :: #'Ulimit'{}. --export_type(['RequestFrame'/0, 'ReplyFrame'/0, 'ReplyResult'/0, 'ReplyError'/0, 'CastFrame'/0, 'AuthRequest'/0, 'Pub'/0, 'Command'/0, 'Data'/0, 'TaskEventStream'/0, 'ContainerRef'/0, 'ContainerRequest.List'/0, 'ContainerRequest.Deploy'/0, 'ContainerRequest.Start'/0, 'ContainerRequest.Stop'/0, 'ContainerRequest.Kill'/0, 'ContainerRequest.Remove'/0, 'ContainerRequest.Config'/0, 'ContainerRequest'/0, 'ContainerDeployParams'/0, 'DockerCreateOptions'/0, 'DockerContainerConfig'/0, 'DockerHostConfig'/0, 'DockerNetworkingConfig'/0, 'DockerNetworkEndpoint'/0, 'DockerExposedPort'/0, 'Healthcheck'/0, 'RestartPolicy'/0, 'DeviceMapping'/0, 'Ulimit'/0]). --type '$msg_name'() :: 'RequestFrame' | 'ReplyFrame' | 'ReplyResult' | 'ReplyError' | 'CastFrame' | 'AuthRequest' | 'Pub' | 'Command' | 'Data' | 'TaskEventStream' | 'ContainerRef' | 'ContainerRequest.List' | 'ContainerRequest.Deploy' | 'ContainerRequest.Start' | 'ContainerRequest.Stop' | 'ContainerRequest.Kill' | 'ContainerRequest.Remove' | 'ContainerRequest.Config' | 'ContainerRequest' | 'ContainerDeployParams' | 'DockerCreateOptions' | 'DockerContainerConfig' | 'DockerHostConfig' | 'DockerNetworkingConfig' | 'DockerNetworkEndpoint' | 'DockerExposedPort' | 'Healthcheck' | 'RestartPolicy' | 'DeviceMapping' | 'Ulimit'. --type '$msg'() :: 'RequestFrame'() | 'ReplyFrame'() | 'ReplyResult'() | 'ReplyError'() | 'CastFrame'() | 'AuthRequest'() | 'Pub'() | 'Command'() | 'Data'() | 'TaskEventStream'() | 'ContainerRef'() | 'ContainerRequest.List'() | 'ContainerRequest.Deploy'() | 'ContainerRequest.Start'() | 'ContainerRequest.Stop'() | 'ContainerRequest.Kill'() | 'ContainerRequest.Remove'() | 'ContainerRequest.Config'() | 'ContainerRequest'() | 'ContainerDeployParams'() | 'DockerCreateOptions'() | 'DockerContainerConfig'() | 'DockerHostConfig'() | 'DockerNetworkingConfig'() | 'DockerNetworkEndpoint'() | 'DockerExposedPort'() | 'Healthcheck'() | 'RestartPolicy'() | 'DeviceMapping'() | 'Ulimit'(). +-export_type(['RequestFrame'/0, 'AuthRequest'/0, 'ReplyFrame.Error'/0, 'ReplyFrame'/0, 'CastFrame.Pub'/0, 'CastFrame.Command'/0, 'CastFrame.Data'/0, 'CastFrame.TaskEvent'/0, 'CastFrame'/0, 'ContainerRef'/0, 'ContainerRequest.List'/0, 'ContainerRequest.Deploy'/0, 'ContainerRequest.Start'/0, 'ContainerRequest.Stop'/0, 'ContainerRequest.Kill'/0, 'ContainerRequest.Remove'/0, 'ContainerRequest.Config'/0, 'ContainerRequest'/0, 'ContainerDeployParams'/0, 'DockerCreateOptions'/0, 'DockerContainerConfig'/0, 'DockerHostConfig'/0, 'DockerNetworkingConfig'/0, 'DockerNetworkEndpoint'/0, 'DockerExposedPort'/0, 'Healthcheck'/0, 'RestartPolicy'/0, 'DeviceMapping'/0, 'Ulimit'/0]). +-type '$msg_name'() :: 'RequestFrame' | 'AuthRequest' | 'ReplyFrame.Error' | 'ReplyFrame' | 'CastFrame.Pub' | 'CastFrame.Command' | 'CastFrame.Data' | 'CastFrame.TaskEvent' | 'CastFrame' | 'ContainerRef' | 'ContainerRequest.List' | 'ContainerRequest.Deploy' | 'ContainerRequest.Start' | 'ContainerRequest.Stop' | 'ContainerRequest.Kill' | 'ContainerRequest.Remove' | 'ContainerRequest.Config' | 'ContainerRequest' | 'ContainerDeployParams' | 'DockerCreateOptions' | 'DockerContainerConfig' | 'DockerHostConfig' | 'DockerNetworkingConfig' | 'DockerNetworkEndpoint' | 'DockerExposedPort' | 'Healthcheck' | 'RestartPolicy' | 'DeviceMapping' | 'Ulimit'. +-type '$msg'() :: 'RequestFrame'() | 'AuthRequest'() | 'ReplyFrame.Error'() | 'ReplyFrame'() | 'CastFrame.Pub'() | 'CastFrame.Command'() | 'CastFrame.Data'() | 'CastFrame.TaskEvent'() | 'CastFrame'() | 'ContainerRef'() | 'ContainerRequest.List'() | 'ContainerRequest.Deploy'() | 'ContainerRequest.Start'() | 'ContainerRequest.Stop'() | 'ContainerRequest.Kill'() | 'ContainerRequest.Remove'() | 'ContainerRequest.Config'() | 'ContainerRequest'() | 'ContainerDeployParams'() | 'DockerCreateOptions'() | 'DockerContainerConfig'() | 'DockerHostConfig'() | 'DockerNetworkingConfig'() | 'DockerNetworkEndpoint'() | 'DockerExposedPort'() | 'Healthcheck'() | 'RestartPolicy'() | 'DeviceMapping'() | 'Ulimit'(). -export_type(['$msg_name'/0, '$msg'/0]). -record('map',{key, value}). @@ -145,15 +143,14 @@ encode_msg(Msg, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of 'RequestFrame' -> encode_msg_RequestFrame(id(Msg, TrUserData), TrUserData); - 'ReplyFrame' -> encode_msg_ReplyFrame(id(Msg, TrUserData), TrUserData); - 'ReplyResult' -> encode_msg_ReplyResult(id(Msg, TrUserData), TrUserData); - 'ReplyError' -> encode_msg_ReplyError(id(Msg, TrUserData), TrUserData); - 'CastFrame' -> encode_msg_CastFrame(id(Msg, TrUserData), TrUserData); 'AuthRequest' -> encode_msg_AuthRequest(id(Msg, TrUserData), TrUserData); - 'Pub' -> encode_msg_Pub(id(Msg, TrUserData), TrUserData); - 'Command' -> encode_msg_Command(id(Msg, TrUserData), TrUserData); - 'Data' -> encode_msg_Data(id(Msg, TrUserData), TrUserData); - 'TaskEventStream' -> encode_msg_TaskEventStream(id(Msg, TrUserData), TrUserData); + 'ReplyFrame.Error' -> 'encode_msg_ReplyFrame.Error'(id(Msg, TrUserData), TrUserData); + 'ReplyFrame' -> encode_msg_ReplyFrame(id(Msg, TrUserData), TrUserData); + 'CastFrame.Pub' -> 'encode_msg_CastFrame.Pub'(id(Msg, TrUserData), TrUserData); + 'CastFrame.Command' -> 'encode_msg_CastFrame.Command'(id(Msg, TrUserData), TrUserData); + 'CastFrame.Data' -> 'encode_msg_CastFrame.Data'(id(Msg, TrUserData), TrUserData); + 'CastFrame.TaskEvent' -> 'encode_msg_CastFrame.TaskEvent'(id(Msg, TrUserData), TrUserData); + 'CastFrame' -> encode_msg_CastFrame(id(Msg, TrUserData), TrUserData); 'ContainerRef' -> encode_msg_ContainerRef(id(Msg, TrUserData), TrUserData); 'ContainerRequest.List' -> 'encode_msg_ContainerRequest.List'(id(Msg, TrUserData), TrUserData); 'ContainerRequest.Deploy' -> 'encode_msg_ContainerRequest.Deploy'(id(Msg, TrUserData), TrUserData); @@ -193,82 +190,8 @@ encode_msg_RequestFrame(#'RequestFrame'{packet_id = F1, body = F2}, Bin, TrUserD if F2 =:= undefined -> B1; true -> case id(F2, TrUserData) of - {auth_request, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_RequestFrame_auth_request(TrTF2, <>, TrUserData) end; - {container_request, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_RequestFrame_container_request(TrTF2, <>, TrUserData) end - end - end. - -encode_msg_ReplyFrame(Msg, TrUserData) -> encode_msg_ReplyFrame(Msg, <<>>, TrUserData). - - -encode_msg_ReplyFrame(#'ReplyFrame'{packet_id = F1, reply = 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 -> - case id(F2, TrUserData) of - {result, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_ReplyFrame_result(TrTF2, <>, TrUserData) end; - {error, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_ReplyFrame_error(TrTF2, <>, TrUserData) end - end - end. - -encode_msg_ReplyResult(Msg, TrUserData) -> encode_msg_ReplyResult(Msg, <<>>, TrUserData). - - -encode_msg_ReplyResult(#'ReplyResult'{data = F1}, Bin, TrUserData) -> - if F1 == undefined -> Bin; - true -> - begin - TrF1 = id(F1, TrUserData), - case iolist_size(TrF1) of - 0 -> Bin; - _ -> e_type_bytes(TrF1, <>, TrUserData) - end - end - end. - -encode_msg_ReplyError(Msg, TrUserData) -> encode_msg_ReplyError(Msg, <<>>, TrUserData). - - -encode_msg_ReplyError(#'ReplyError'{code = F1, message = F2}, 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, - 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_CastFrame(Msg, TrUserData) -> encode_msg_CastFrame(Msg, <<>>, TrUserData). - - -encode_msg_CastFrame(#'CastFrame'{body = F1}, Bin, TrUserData) -> - if F1 =:= undefined -> Bin; - true -> - case id(F1, TrUserData) of - {pub, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_pub(TrTF1, <>, TrUserData) end; - {command, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_command(TrTF1, <>, TrUserData) end; - {data, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_data(TrTF1, <>, TrUserData) end; - {event_stream, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_event_stream(TrTF1, <>, TrUserData) end + {auth_request, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_RequestFrame_auth_request(TrTF2, <>, TrUserData) end; + {container_request, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_RequestFrame_container_request(TrTF2, <>, TrUserData) end end end. @@ -326,10 +249,55 @@ encode_msg_AuthRequest(#'AuthRequest'{uuid = F1, username = F2, salt = F3, token end end. -encode_msg_Pub(Msg, TrUserData) -> encode_msg_Pub(Msg, <<>>, TrUserData). +'encode_msg_ReplyFrame.Error'(Msg, TrUserData) -> 'encode_msg_ReplyFrame.Error'(Msg, <<>>, TrUserData). -encode_msg_Pub(#'Pub'{topic = F1, qos = F2, content = F3}, Bin, TrUserData) -> +'encode_msg_ReplyFrame.Error'(#'ReplyFrame.Error'{code = F1, message = F2}, 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, + 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_ReplyFrame(Msg, TrUserData) -> encode_msg_ReplyFrame(Msg, <<>>, TrUserData). + + +encode_msg_ReplyFrame(#'ReplyFrame'{packet_id = F1, reply = 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 -> + case id(F2, TrUserData) of + {result, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_type_bytes(TrTF2, <>, TrUserData) end; + {error, TF2} -> begin TrTF2 = id(TF2, TrUserData), e_mfield_ReplyFrame_error(TrTF2, <>, TrUserData) end + end + end. + +'encode_msg_CastFrame.Pub'(Msg, TrUserData) -> 'encode_msg_CastFrame.Pub'(Msg, <<>>, TrUserData). + + +'encode_msg_CastFrame.Pub'(#'CastFrame.Pub'{topic = F1, qos = F2, content = F3}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -360,10 +328,10 @@ encode_msg_Pub(#'Pub'{topic = F1, qos = F2, content = F3}, Bin, TrUserData) -> end end. -encode_msg_Command(Msg, TrUserData) -> encode_msg_Command(Msg, <<>>, TrUserData). +'encode_msg_CastFrame.Command'(Msg, TrUserData) -> 'encode_msg_CastFrame.Command'(Msg, <<>>, TrUserData). -encode_msg_Command(#'Command'{command_type = F1, command = F2}, Bin, TrUserData) -> +'encode_msg_CastFrame.Command'(#'CastFrame.Command'{command_type = F1, command = F2}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -384,10 +352,10 @@ encode_msg_Command(#'Command'{command_type = F1, command = F2}, Bin, TrUserData) end end. -encode_msg_Data(Msg, TrUserData) -> encode_msg_Data(Msg, <<>>, TrUserData). +'encode_msg_CastFrame.Data'(Msg, TrUserData) -> 'encode_msg_CastFrame.Data'(Msg, <<>>, TrUserData). -encode_msg_Data(#'Data'{route_key = F1, metric = F2}, Bin, TrUserData) -> +'encode_msg_CastFrame.Data'(#'CastFrame.Data'{route_key = F1, metric = F2}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -409,10 +377,10 @@ encode_msg_Data(#'Data'{route_key = F1, metric = F2}, Bin, TrUserData) -> end end. -encode_msg_TaskEventStream(Msg, TrUserData) -> encode_msg_TaskEventStream(Msg, <<>>, TrUserData). +'encode_msg_CastFrame.TaskEvent'(Msg, TrUserData) -> 'encode_msg_CastFrame.TaskEvent'(Msg, <<>>, TrUserData). -encode_msg_TaskEventStream(#'TaskEventStream'{task_id = F1, type = F2, stream = F3}, Bin, TrUserData) -> +'encode_msg_CastFrame.TaskEvent'(#'CastFrame.TaskEvent'{task_id = F1, type = F2, stream = F3}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin @@ -443,6 +411,20 @@ encode_msg_TaskEventStream(#'TaskEventStream'{task_id = F1, type = F2, stream = end end. +encode_msg_CastFrame(Msg, TrUserData) -> encode_msg_CastFrame(Msg, <<>>, TrUserData). + + +encode_msg_CastFrame(#'CastFrame'{body = F1}, Bin, TrUserData) -> + if F1 =:= undefined -> Bin; + true -> + case id(F1, TrUserData) of + {pub, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_pub(TrTF1, <>, TrUserData) end; + {command, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_command(TrTF1, <>, TrUserData) end; + {data, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_data(TrTF1, <>, TrUserData) end; + {task_event, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_CastFrame_task_event(TrTF1, <>, TrUserData) end + end + end. + encode_msg_ContainerRef(Msg, TrUserData) -> encode_msg_ContainerRef(Msg, <<>>, TrUserData). @@ -1104,33 +1086,28 @@ e_mfield_RequestFrame_container_request(Msg, Bin, TrUserData) -> Bin2 = e_varint(byte_size(SubBin), Bin), <>. -e_mfield_ReplyFrame_result(Msg, Bin, TrUserData) -> - SubBin = encode_msg_ReplyResult(Msg, <<>>, TrUserData), - Bin2 = e_varint(byte_size(SubBin), Bin), - <>. - e_mfield_ReplyFrame_error(Msg, Bin, TrUserData) -> - SubBin = encode_msg_ReplyError(Msg, <<>>, TrUserData), + SubBin = 'encode_msg_ReplyFrame.Error'(Msg, <<>>, TrUserData), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_mfield_CastFrame_pub(Msg, Bin, TrUserData) -> - SubBin = encode_msg_Pub(Msg, <<>>, TrUserData), + SubBin = 'encode_msg_CastFrame.Pub'(Msg, <<>>, TrUserData), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_mfield_CastFrame_command(Msg, Bin, TrUserData) -> - SubBin = encode_msg_Command(Msg, <<>>, TrUserData), + SubBin = 'encode_msg_CastFrame.Command'(Msg, <<>>, TrUserData), Bin2 = e_varint(byte_size(SubBin), Bin), <>. e_mfield_CastFrame_data(Msg, Bin, TrUserData) -> - SubBin = encode_msg_Data(Msg, <<>>, TrUserData), + SubBin = 'encode_msg_CastFrame.Data'(Msg, <<>>, TrUserData), Bin2 = e_varint(byte_size(SubBin), Bin), <>. -e_mfield_CastFrame_event_stream(Msg, Bin, TrUserData) -> - SubBin = encode_msg_TaskEventStream(Msg, <<>>, TrUserData), +e_mfield_CastFrame_task_event(Msg, Bin, TrUserData) -> + SubBin = 'encode_msg_CastFrame.TaskEvent'(Msg, <<>>, TrUserData), Bin2 = e_varint(byte_size(SubBin), Bin), <>. @@ -1503,15 +1480,14 @@ decode_msg_1_catch(Bin, MsgName, TrUserData) -> -endif. decode_msg_2_doit('RequestFrame', Bin, TrUserData) -> id(decode_msg_RequestFrame(Bin, TrUserData), TrUserData); -decode_msg_2_doit('ReplyFrame', Bin, TrUserData) -> id(decode_msg_ReplyFrame(Bin, TrUserData), TrUserData); -decode_msg_2_doit('ReplyResult', Bin, TrUserData) -> id(decode_msg_ReplyResult(Bin, TrUserData), TrUserData); -decode_msg_2_doit('ReplyError', Bin, TrUserData) -> id(decode_msg_ReplyError(Bin, TrUserData), TrUserData); -decode_msg_2_doit('CastFrame', Bin, TrUserData) -> id(decode_msg_CastFrame(Bin, TrUserData), TrUserData); decode_msg_2_doit('AuthRequest', Bin, TrUserData) -> id(decode_msg_AuthRequest(Bin, TrUserData), TrUserData); -decode_msg_2_doit('Pub', Bin, TrUserData) -> id(decode_msg_Pub(Bin, TrUserData), TrUserData); -decode_msg_2_doit('Command', Bin, TrUserData) -> id(decode_msg_Command(Bin, TrUserData), TrUserData); -decode_msg_2_doit('Data', Bin, TrUserData) -> id(decode_msg_Data(Bin, TrUserData), TrUserData); -decode_msg_2_doit('TaskEventStream', Bin, TrUserData) -> id(decode_msg_TaskEventStream(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ReplyFrame.Error', Bin, TrUserData) -> id('decode_msg_ReplyFrame.Error'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('ReplyFrame', Bin, TrUserData) -> id(decode_msg_ReplyFrame(Bin, TrUserData), TrUserData); +decode_msg_2_doit('CastFrame.Pub', Bin, TrUserData) -> id('decode_msg_CastFrame.Pub'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('CastFrame.Command', Bin, TrUserData) -> id('decode_msg_CastFrame.Command'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('CastFrame.Data', Bin, TrUserData) -> id('decode_msg_CastFrame.Data'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('CastFrame.TaskEvent', Bin, TrUserData) -> id('decode_msg_CastFrame.TaskEvent'(Bin, TrUserData), TrUserData); +decode_msg_2_doit('CastFrame', Bin, TrUserData) -> id(decode_msg_CastFrame(Bin, TrUserData), TrUserData); decode_msg_2_doit('ContainerRef', Bin, TrUserData) -> id(decode_msg_ContainerRef(Bin, TrUserData), TrUserData); decode_msg_2_doit('ContainerRequest.List', Bin, TrUserData) -> id('decode_msg_ContainerRequest.List'(Bin, TrUserData), TrUserData); decode_msg_2_doit('ContainerRequest.Deploy', Bin, TrUserData) -> id('decode_msg_ContainerRequest.Deploy'(Bin, TrUserData), TrUserData); @@ -1538,8 +1514,8 @@ decode_msg_2_doit('Ulimit', Bin, TrUserData) -> id(decode_msg_Ulimit(Bin, TrUser decode_msg_RequestFrame(Bin, TrUserData) -> dfp_read_field_def_RequestFrame(Bin, 0, 0, 0, id(0, TrUserData), id(undefined, TrUserData), TrUserData). dfp_read_field_def_RequestFrame(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_packet_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_RequestFrame(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_auth_request(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_RequestFrame(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_container_request(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RequestFrame(<<82, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_auth_request(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_RequestFrame(<<90, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_RequestFrame_container_request(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); dfp_read_field_def_RequestFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RequestFrame'{packet_id = F@_1, body = F@_2}; dfp_read_field_def_RequestFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_RequestFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). @@ -1548,8 +1524,8 @@ dg_read_field_def_RequestFrame(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, Key = X bsl N + Acc, case Key of 8 -> d_field_RequestFrame_packet_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_RequestFrame_auth_request(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 26 -> d_field_RequestFrame_container_request(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 82 -> d_field_RequestFrame_auth_request(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 90 -> d_field_RequestFrame_container_request(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); _ -> case Key band 7 of 0 -> skip_varint_RequestFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); @@ -1613,280 +1589,6 @@ skip_32_RequestFrame(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) - skip_64_RequestFrame(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RequestFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -decode_msg_ReplyFrame(Bin, TrUserData) -> dfp_read_field_def_ReplyFrame(Bin, 0, 0, 0, id(0, TrUserData), id(undefined, TrUserData), TrUserData). - -dfp_read_field_def_ReplyFrame(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ReplyFrame_packet_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_ReplyFrame(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ReplyFrame_result(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_ReplyFrame(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ReplyFrame_error(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_ReplyFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ReplyFrame'{packet_id = F@_1, reply = F@_2}; -dfp_read_field_def_ReplyFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_ReplyFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). - -dg_read_field_def_ReplyFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_ReplyFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_ReplyFrame(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_ReplyFrame_packet_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_ReplyFrame_result(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 26 -> d_field_ReplyFrame_error(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) - end - end; -dg_read_field_def_ReplyFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ReplyFrame'{packet_id = F@_1, reply = F@_2}. - -d_field_ReplyFrame_packet_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ReplyFrame_packet_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_ReplyFrame_packet_id(<<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_ReplyFrame(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). - -d_field_ReplyFrame_result(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ReplyFrame_result(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_ReplyFrame_result(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ReplyResult(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_ReplyFrame(RestF, - 0, - 0, - F, - F@_1, - case Prev of - undefined -> id({result, NewFValue}, TrUserData); - {result, MVPrev} -> id({result, merge_msg_ReplyResult(MVPrev, NewFValue, TrUserData)}, TrUserData); - _ -> id({result, NewFValue}, TrUserData) - end, - TrUserData). - -d_field_ReplyFrame_error(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ReplyFrame_error(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_ReplyFrame_error(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_ReplyError(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_ReplyFrame(RestF, - 0, - 0, - F, - F@_1, - case Prev of - undefined -> id({error, NewFValue}, TrUserData); - {error, MVPrev} -> id({error, merge_msg_ReplyError(MVPrev, NewFValue, TrUserData)}, TrUserData); - _ -> id({error, NewFValue}, TrUserData) - end, - TrUserData). - -skip_varint_ReplyFrame(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_ReplyFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_ReplyFrame(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_length_delimited_ReplyFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_ReplyFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_ReplyFrame(<<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_ReplyFrame(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). - -skip_group_ReplyFrame(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_ReplyFrame(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). - -skip_32_ReplyFrame(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_64_ReplyFrame(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -decode_msg_ReplyResult(Bin, TrUserData) -> dfp_read_field_def_ReplyResult(Bin, 0, 0, 0, id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_ReplyResult(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_ReplyResult_data(Rest, Z1, Z2, F, F@_1, TrUserData); -dfp_read_field_def_ReplyResult(<<>>, 0, 0, _, F@_1, _) -> #'ReplyResult'{data = F@_1}; -dfp_read_field_def_ReplyResult(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_ReplyResult(Other, Z1, Z2, F, F@_1, TrUserData). - -dg_read_field_def_ReplyResult(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_ReplyResult(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -dg_read_field_def_ReplyResult(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> d_field_ReplyResult_data(Rest, 0, 0, 0, F@_1, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_ReplyResult(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 1 -> skip_64_ReplyResult(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 2 -> skip_length_delimited_ReplyResult(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 3 -> skip_group_ReplyResult(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 5 -> skip_32_ReplyResult(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) - end - end; -dg_read_field_def_ReplyResult(<<>>, 0, 0, _, F@_1, _) -> #'ReplyResult'{data = F@_1}. - -d_field_ReplyResult_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_ReplyResult_data(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -d_field_ReplyResult_data(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_ReplyResult(RestF, 0, 0, F, NewFValue, TrUserData). - -skip_varint_ReplyResult(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_ReplyResult(Rest, Z1, Z2, F, F@_1, TrUserData); -skip_varint_ReplyResult(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_ReplyResult(Rest, Z1, Z2, F, F@_1, TrUserData). - -skip_length_delimited_ReplyResult(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_ReplyResult(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -skip_length_delimited_ReplyResult(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_ReplyResult(Rest2, 0, 0, F, F@_1, TrUserData). - -skip_group_ReplyResult(Bin, _, Z2, FNum, F@_1, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_ReplyResult(Rest, 0, Z2, FNum, F@_1, TrUserData). - -skip_32_ReplyResult(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_ReplyResult(Rest, Z1, Z2, F, F@_1, TrUserData). - -skip_64_ReplyResult(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_ReplyResult(Rest, Z1, Z2, F, F@_1, TrUserData). - -decode_msg_ReplyError(Bin, TrUserData) -> dfp_read_field_def_ReplyError(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_ReplyError(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ReplyError_code(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_ReplyError(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ReplyError_message(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_ReplyError(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ReplyError'{code = F@_1, message = F@_2}; -dfp_read_field_def_ReplyError(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_ReplyError(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). - -dg_read_field_def_ReplyError(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_ReplyError(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_ReplyError(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 8 -> d_field_ReplyError_code(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_ReplyError_message(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_ReplyError(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_ReplyError(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_ReplyError(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_ReplyError(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_ReplyError(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) - end - end; -dg_read_field_def_ReplyError(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ReplyError'{code = F@_1, message = F@_2}. - -d_field_ReplyError_code(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ReplyError_code(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_ReplyError_code(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> - {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, - dfp_read_field_def_ReplyError(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). - -d_field_ReplyError_message(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ReplyError_message(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_ReplyError_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_ReplyError(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). - -skip_varint_ReplyError(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_ReplyError(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_ReplyError(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyError(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_length_delimited_ReplyError(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_ReplyError(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_ReplyError(<<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_ReplyError(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). - -skip_group_ReplyError(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_ReplyError(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). - -skip_32_ReplyError(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyError(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -skip_64_ReplyError(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyError(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). - -decode_msg_CastFrame(Bin, TrUserData) -> dfp_read_field_def_CastFrame(Bin, 0, 0, 0, id(undefined, TrUserData), TrUserData). - -dfp_read_field_def_CastFrame(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_pub(Rest, Z1, Z2, F, F@_1, TrUserData); -dfp_read_field_def_CastFrame(<<18, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_command(Rest, Z1, Z2, F, F@_1, TrUserData); -dfp_read_field_def_CastFrame(<<26, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_data(Rest, Z1, Z2, F, F@_1, TrUserData); -dfp_read_field_def_CastFrame(<<34, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_event_stream(Rest, Z1, Z2, F, F@_1, TrUserData); -dfp_read_field_def_CastFrame(<<>>, 0, 0, _, F@_1, _) -> #'CastFrame'{body = F@_1}; -dfp_read_field_def_CastFrame(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_CastFrame(Other, Z1, Z2, F, F@_1, TrUserData). - -dg_read_field_def_CastFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_CastFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -dg_read_field_def_CastFrame(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> - Key = X bsl N + Acc, - case Key of - 10 -> d_field_CastFrame_pub(Rest, 0, 0, 0, F@_1, TrUserData); - 18 -> d_field_CastFrame_command(Rest, 0, 0, 0, F@_1, TrUserData); - 26 -> d_field_CastFrame_data(Rest, 0, 0, 0, F@_1, TrUserData); - 34 -> d_field_CastFrame_event_stream(Rest, 0, 0, 0, F@_1, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 1 -> skip_64_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 2 -> skip_length_delimited_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 3 -> skip_group_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); - 5 -> skip_32_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) - end - end; -dg_read_field_def_CastFrame(<<>>, 0, 0, _, F@_1, _) -> #'CastFrame'{body = F@_1}. - -d_field_CastFrame_pub(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_pub(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -d_field_CastFrame_pub(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Pub(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_CastFrame(RestF, - 0, - 0, - F, - case Prev of - undefined -> id({pub, NewFValue}, TrUserData); - {pub, MVPrev} -> id({pub, merge_msg_Pub(MVPrev, NewFValue, TrUserData)}, TrUserData); - _ -> id({pub, NewFValue}, TrUserData) - end, - TrUserData). - -d_field_CastFrame_command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_command(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -d_field_CastFrame_command(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Command(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_CastFrame(RestF, - 0, - 0, - F, - case Prev of - undefined -> id({command, NewFValue}, TrUserData); - {command, MVPrev} -> id({command, merge_msg_Command(MVPrev, NewFValue, TrUserData)}, TrUserData); - _ -> id({command, NewFValue}, TrUserData) - end, - TrUserData). - -d_field_CastFrame_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_data(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -d_field_CastFrame_data(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_Data(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_CastFrame(RestF, - 0, - 0, - F, - case Prev of - undefined -> id({data, NewFValue}, TrUserData); - {data, MVPrev} -> id({data, merge_msg_Data(MVPrev, NewFValue, TrUserData)}, TrUserData); - _ -> id({data, NewFValue}, TrUserData) - end, - TrUserData). - -d_field_CastFrame_event_stream(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_event_stream(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -d_field_CastFrame_event_stream(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> - {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id(decode_msg_TaskEventStream(Bs, TrUserData), TrUserData), Rest2} end, - dfp_read_field_def_CastFrame(RestF, - 0, - 0, - F, - case Prev of - undefined -> id({event_stream, NewFValue}, TrUserData); - {event_stream, MVPrev} -> id({event_stream, merge_msg_TaskEventStream(MVPrev, NewFValue, TrUserData)}, TrUserData); - _ -> id({event_stream, NewFValue}, TrUserData) - end, - TrUserData). - -skip_varint_CastFrame(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData); -skip_varint_CastFrame(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). - -skip_length_delimited_CastFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_CastFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); -skip_length_delimited_CastFrame(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> - Length = X bsl N + Acc, - <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_CastFrame(Rest2, 0, 0, F, F@_1, TrUserData). - -skip_group_CastFrame(Bin, _, Z2, FNum, F@_1, TrUserData) -> - {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_CastFrame(Rest, 0, Z2, FNum, F@_1, TrUserData). - -skip_32_CastFrame(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). - -skip_64_CastFrame(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). - decode_msg_AuthRequest(Bin, TrUserData) -> dfp_read_field_def_AuthRequest(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), id(0, TrUserData), TrUserData). dfp_read_field_def_AuthRequest(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> d_field_AuthRequest_uuid(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData); @@ -1959,223 +1661,443 @@ skip_32_AuthRequest(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@ skip_64_AuthRequest(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData) -> dfp_read_field_def_AuthRequest(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, F@_4, F@_5, TrUserData). -decode_msg_Pub(Bin, TrUserData) -> dfp_read_field_def_Pub(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). +'decode_msg_ReplyFrame.Error'(Bin, TrUserData) -> 'dfp_read_field_def_ReplyFrame.Error'(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). -dfp_read_field_def_Pub(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Pub_topic(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_Pub(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Pub_qos(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_Pub(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_Pub_content(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_Pub(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'Pub'{topic = F@_1, qos = F@_2, content = F@_3}; -dfp_read_field_def_Pub(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_Pub(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +'dfp_read_field_def_ReplyFrame.Error'(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ReplyFrame.Error_code'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ReplyFrame.Error'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_ReplyFrame.Error_message'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_ReplyFrame.Error'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ReplyFrame.Error'{code = F@_1, message = F@_2}; +'dfp_read_field_def_ReplyFrame.Error'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_ReplyFrame.Error'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). -dg_read_field_def_Pub(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_Pub(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_Pub(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> +'dg_read_field_def_ReplyFrame.Error'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_ReplyFrame.Error'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_ReplyFrame.Error'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> d_field_Pub_topic(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 16 -> d_field_Pub_qos(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 26 -> d_field_Pub_content(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 8 -> 'd_field_ReplyFrame.Error_code'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> 'd_field_ReplyFrame.Error_message'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_Pub(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + 0 -> 'skip_varint_ReplyFrame.Error'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_ReplyFrame.Error'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_ReplyFrame.Error'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_ReplyFrame.Error'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_ReplyFrame.Error'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) end end; -dg_read_field_def_Pub(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'Pub'{topic = F@_1, qos = F@_2, content = F@_3}. +'dg_read_field_def_ReplyFrame.Error'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ReplyFrame.Error'{code = F@_1, message = F@_2}. -d_field_Pub_topic(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Pub_topic(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_Pub_topic(<<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_Pub(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). - -d_field_Pub_qos(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Pub_qos(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_Pub_qos(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> +'d_field_ReplyFrame.Error_code'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ReplyFrame.Error_code'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ReplyFrame.Error_code'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, - dfp_read_field_def_Pub(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + 'dfp_read_field_def_ReplyFrame.Error'(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). -d_field_Pub_content(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_Pub_content(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_Pub_content(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> +'d_field_ReplyFrame.Error_message'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_ReplyFrame.Error_message'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_ReplyFrame.Error_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_Pub(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + 'dfp_read_field_def_ReplyFrame.Error'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). -skip_varint_Pub(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_Pub(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_Pub(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Pub(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +'skip_varint_ReplyFrame.Error'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_ReplyFrame.Error'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_ReplyFrame.Error'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ReplyFrame.Error'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -skip_length_delimited_Pub(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_Pub(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_Pub(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> +'skip_length_delimited_ReplyFrame.Error'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_ReplyFrame.Error'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_ReplyFrame.Error'(<<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_Pub(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + 'dfp_read_field_def_ReplyFrame.Error'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). -skip_group_Pub(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> +'skip_group_ReplyFrame.Error'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Pub(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + 'dfp_read_field_def_ReplyFrame.Error'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). -skip_32_Pub(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Pub(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +'skip_32_ReplyFrame.Error'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ReplyFrame.Error'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -skip_64_Pub(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_Pub(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +'skip_64_ReplyFrame.Error'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_ReplyFrame.Error'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -decode_msg_Command(Bin, TrUserData) -> dfp_read_field_def_Command(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). +decode_msg_ReplyFrame(Bin, TrUserData) -> dfp_read_field_def_ReplyFrame(Bin, 0, 0, 0, id(0, TrUserData), id(undefined, TrUserData), TrUserData). -dfp_read_field_def_Command(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Command_command_type(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_Command(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Command_command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_Command(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'Command'{command_type = F@_1, command = F@_2}; -dfp_read_field_def_Command(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_Command(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). +dfp_read_field_def_ReplyFrame(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ReplyFrame_packet_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_ReplyFrame(<<82, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ReplyFrame_result(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_ReplyFrame(<<90, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_ReplyFrame_error(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +dfp_read_field_def_ReplyFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ReplyFrame'{packet_id = F@_1, reply = F@_2}; +dfp_read_field_def_ReplyFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_ReplyFrame(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). -dg_read_field_def_Command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_Command(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_Command(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> +dg_read_field_def_ReplyFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_ReplyFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +dg_read_field_def_ReplyFrame(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> Key = X bsl N + Acc, case Key of - 8 -> d_field_Command_command_type(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_Command_command(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 8 -> d_field_ReplyFrame_packet_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 82 -> d_field_ReplyFrame_result(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 90 -> d_field_ReplyFrame_error(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_Command(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + 0 -> skip_varint_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> skip_64_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> skip_length_delimited_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> skip_group_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> skip_32_ReplyFrame(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) end end; -dg_read_field_def_Command(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'Command'{command_type = F@_1, command = F@_2}. +dg_read_field_def_ReplyFrame(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'ReplyFrame'{packet_id = F@_1, reply = F@_2}. -d_field_Command_command_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Command_command_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_Command_command_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> +d_field_ReplyFrame_packet_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ReplyFrame_packet_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_ReplyFrame_packet_id(<<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_ReplyFrame(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +d_field_ReplyFrame_result(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ReplyFrame_result(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_ReplyFrame_result(<<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_ReplyFrame(RestF, 0, 0, F, F@_1, id({result, NewFValue}, TrUserData), TrUserData). + +d_field_ReplyFrame_error(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_ReplyFrame_error(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +d_field_ReplyFrame_error(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_ReplyFrame.Error'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_ReplyFrame(RestF, + 0, + 0, + F, + F@_1, + case Prev of + undefined -> id({error, NewFValue}, TrUserData); + {error, MVPrev} -> id({error, 'merge_msg_ReplyFrame.Error'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({error, NewFValue}, TrUserData) + end, + TrUserData). + +skip_varint_ReplyFrame(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_ReplyFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +skip_varint_ReplyFrame(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_length_delimited_ReplyFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_ReplyFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +skip_length_delimited_ReplyFrame(<<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_ReplyFrame(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +skip_group_ReplyFrame(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_ReplyFrame(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +skip_32_ReplyFrame(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +skip_64_ReplyFrame(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_ReplyFrame(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'decode_msg_CastFrame.Pub'(Bin, TrUserData) -> 'dfp_read_field_def_CastFrame.Pub'(Bin, 0, 0, 0, id(<<>>, TrUserData), id(0, TrUserData), id(<<>>, TrUserData), TrUserData). + +'dfp_read_field_def_CastFrame.Pub'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_CastFrame.Pub_topic'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_CastFrame.Pub'(<<16, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_CastFrame.Pub_qos'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_CastFrame.Pub'(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_CastFrame.Pub_content'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_CastFrame.Pub'(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'CastFrame.Pub'{topic = F@_1, qos = F@_2, content = F@_3}; +'dfp_read_field_def_CastFrame.Pub'(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dg_read_field_def_CastFrame.Pub'(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'dg_read_field_def_CastFrame.Pub'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_CastFrame.Pub'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'dg_read_field_def_CastFrame.Pub'(<<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_CastFrame.Pub_topic'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 16 -> 'd_field_CastFrame.Pub_qos'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> 'd_field_CastFrame.Pub_content'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_CastFrame.Pub'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> 'skip_64_CastFrame.Pub'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> 'skip_length_delimited_CastFrame.Pub'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> 'skip_group_CastFrame.Pub'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> 'skip_32_CastFrame.Pub'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +'dg_read_field_def_CastFrame.Pub'(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'CastFrame.Pub'{topic = F@_1, qos = F@_2, content = F@_3}. + +'d_field_CastFrame.Pub_topic'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_CastFrame.Pub_topic'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_CastFrame.Pub_topic'(<<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_CastFrame.Pub'(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +'d_field_CastFrame.Pub_qos'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_CastFrame.Pub_qos'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_CastFrame.Pub_qos'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, - dfp_read_field_def_Command(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + 'dfp_read_field_def_CastFrame.Pub'(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). -d_field_Command_command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Command_command(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_Command_command(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> +'d_field_CastFrame.Pub_content'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_CastFrame.Pub_content'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_CastFrame.Pub_content'(<<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_Command(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + 'dfp_read_field_def_CastFrame.Pub'(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). -skip_varint_Command(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_Command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_Command(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +'skip_varint_CastFrame.Pub'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'skip_varint_CastFrame.Pub'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'skip_varint_CastFrame.Pub'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_CastFrame.Pub'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_length_delimited_Command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_Command(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_Command(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> +'skip_length_delimited_CastFrame.Pub'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'skip_length_delimited_CastFrame.Pub'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'skip_length_delimited_CastFrame.Pub'(<<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_Command(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + 'dfp_read_field_def_CastFrame.Pub'(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_Command(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> +'skip_group_CastFrame.Pub'(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_Command(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + 'dfp_read_field_def_CastFrame.Pub'(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_Command(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +'skip_32_CastFrame.Pub'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_CastFrame.Pub'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_Command(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_Command(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +'skip_64_CastFrame.Pub'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_CastFrame.Pub'(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). +'decode_msg_CastFrame.Command'(Bin, TrUserData) -> 'dfp_read_field_def_CastFrame.Command'(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData). -dfp_read_field_def_Data(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_Data_route_key(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'{route_key = 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). +'dfp_read_field_def_CastFrame.Command'(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_CastFrame.Command_command_type'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_CastFrame.Command'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_CastFrame.Command_command'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_CastFrame.Command'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'CastFrame.Command'{command_type = F@_1, command = F@_2}; +'dfp_read_field_def_CastFrame.Command'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_CastFrame.Command'(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) -> +'dg_read_field_def_CastFrame.Command'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_CastFrame.Command'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_CastFrame.Command'(<<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_route_key(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_Data_metric(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 8 -> 'd_field_CastFrame.Command_command_type'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> 'd_field_CastFrame.Command_command'(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) + 0 -> 'skip_varint_CastFrame.Command'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_CastFrame.Command'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_CastFrame.Command'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_CastFrame.Command'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_CastFrame.Command'(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'{route_key = F@_1, metric = F@_2}. +'dg_read_field_def_CastFrame.Command'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'CastFrame.Command'{command_type = F@_1, command = F@_2}. -d_field_Data_route_key(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_Data_route_key(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_Data_route_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_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_TaskEventStream(Bin, TrUserData) -> dfp_read_field_def_TaskEventStream(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). - -dfp_read_field_def_TaskEventStream(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_TaskEventStream_task_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_TaskEventStream(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_TaskEventStream_type(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_TaskEventStream(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_TaskEventStream_stream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -dfp_read_field_def_TaskEventStream(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'TaskEventStream'{task_id = F@_1, type = F@_2, stream = F@_3}; -dfp_read_field_def_TaskEventStream(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_TaskEventStream(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -dg_read_field_def_TaskEventStream(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_TaskEventStream(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -dg_read_field_def_TaskEventStream(<<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_TaskEventStream_task_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 18 -> d_field_TaskEventStream_type(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - 26 -> d_field_TaskEventStream_stream(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); - _ -> - case Key band 7 of - 0 -> skip_varint_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 1 -> skip_64_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 2 -> skip_length_delimited_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 3 -> skip_group_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); - 5 -> skip_32_TaskEventStream(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) - end - end; -dg_read_field_def_TaskEventStream(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'TaskEventStream'{task_id = F@_1, type = F@_2, stream = F@_3}. - -d_field_TaskEventStream_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_TaskEventStream_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_TaskEventStream_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> +'d_field_CastFrame.Command_command_type'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_CastFrame.Command_command_type'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_CastFrame.Command_command_type'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> {NewFValue, RestF} = {begin <> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest}, - dfp_read_field_def_TaskEventStream(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + 'dfp_read_field_def_CastFrame.Command'(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). -d_field_TaskEventStream_type(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_TaskEventStream_type(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_TaskEventStream_type(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> +'d_field_CastFrame.Command_command'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_CastFrame.Command_command'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_CastFrame.Command_command'(<<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_TaskEventStream(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + 'dfp_read_field_def_CastFrame.Command'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). -d_field_TaskEventStream_stream(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_TaskEventStream_stream(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -d_field_TaskEventStream_stream(<<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_TaskEventStream(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). +'skip_varint_CastFrame.Command'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_CastFrame.Command'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_CastFrame.Command'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_CastFrame.Command'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -skip_varint_TaskEventStream(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_TaskEventStream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); -skip_varint_TaskEventStream(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_TaskEventStream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). - -skip_length_delimited_TaskEventStream(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_TaskEventStream(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); -skip_length_delimited_TaskEventStream(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> +'skip_length_delimited_CastFrame.Command'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_CastFrame.Command'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_CastFrame.Command'(<<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_TaskEventStream(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + 'dfp_read_field_def_CastFrame.Command'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). -skip_group_TaskEventStream(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> +'skip_group_CastFrame.Command'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_TaskEventStream(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + 'dfp_read_field_def_CastFrame.Command'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). -skip_32_TaskEventStream(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_TaskEventStream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +'skip_32_CastFrame.Command'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_CastFrame.Command'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). -skip_64_TaskEventStream(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_TaskEventStream(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). +'skip_64_CastFrame.Command'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_CastFrame.Command'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'decode_msg_CastFrame.Data'(Bin, TrUserData) -> 'dfp_read_field_def_CastFrame.Data'(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +'dfp_read_field_def_CastFrame.Data'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_CastFrame.Data_route_key'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_CastFrame.Data'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_CastFrame.Data_metric'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'dfp_read_field_def_CastFrame.Data'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'CastFrame.Data'{route_key = F@_1, metric = F@_2}; +'dfp_read_field_def_CastFrame.Data'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_CastFrame.Data'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'dg_read_field_def_CastFrame.Data'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_CastFrame.Data'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'dg_read_field_def_CastFrame.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_CastFrame.Data_route_key'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 18 -> 'd_field_CastFrame.Data_metric'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_CastFrame.Data'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 1 -> 'skip_64_CastFrame.Data'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 2 -> 'skip_length_delimited_CastFrame.Data'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 3 -> 'skip_group_CastFrame.Data'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); + 5 -> 'skip_32_CastFrame.Data'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + end + end; +'dg_read_field_def_CastFrame.Data'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'CastFrame.Data'{route_key = F@_1, metric = F@_2}. + +'d_field_CastFrame.Data_route_key'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_CastFrame.Data_route_key'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_CastFrame.Data_route_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_CastFrame.Data'(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + +'d_field_CastFrame.Data_metric'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_CastFrame.Data_metric'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'d_field_CastFrame.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_CastFrame.Data'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + +'skip_varint_CastFrame.Data'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_CastFrame.Data'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); +'skip_varint_CastFrame.Data'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_CastFrame.Data'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_length_delimited_CastFrame.Data'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_CastFrame.Data'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); +'skip_length_delimited_CastFrame.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_CastFrame.Data'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + +'skip_group_CastFrame.Data'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_CastFrame.Data'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + +'skip_32_CastFrame.Data'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_CastFrame.Data'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'skip_64_CastFrame.Data'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_CastFrame.Data'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). + +'decode_msg_CastFrame.TaskEvent'(Bin, TrUserData) -> 'dfp_read_field_def_CastFrame.TaskEvent'(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). + +'dfp_read_field_def_CastFrame.TaskEvent'(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_CastFrame.TaskEvent_task_id'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_CastFrame.TaskEvent'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_CastFrame.TaskEvent_type'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_CastFrame.TaskEvent'(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'd_field_CastFrame.TaskEvent_stream'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'dfp_read_field_def_CastFrame.TaskEvent'(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'CastFrame.TaskEvent'{task_id = F@_1, type = F@_2, stream = F@_3}; +'dfp_read_field_def_CastFrame.TaskEvent'(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dg_read_field_def_CastFrame.TaskEvent'(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'dg_read_field_def_CastFrame.TaskEvent'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_CastFrame.TaskEvent'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'dg_read_field_def_CastFrame.TaskEvent'(<<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_CastFrame.TaskEvent_task_id'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> 'd_field_CastFrame.TaskEvent_type'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> 'd_field_CastFrame.TaskEvent_stream'(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + _ -> + case Key band 7 of + 0 -> 'skip_varint_CastFrame.TaskEvent'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> 'skip_64_CastFrame.TaskEvent'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> 'skip_length_delimited_CastFrame.TaskEvent'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> 'skip_group_CastFrame.TaskEvent'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> 'skip_32_CastFrame.TaskEvent'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) + end + end; +'dg_read_field_def_CastFrame.TaskEvent'(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #'CastFrame.TaskEvent'{task_id = F@_1, type = F@_2, stream = F@_3}. + +'d_field_CastFrame.TaskEvent_task_id'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_CastFrame.TaskEvent_task_id'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_CastFrame.TaskEvent_task_id'(<<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_CastFrame.TaskEvent'(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +'d_field_CastFrame.TaskEvent_type'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_CastFrame.TaskEvent_type'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_CastFrame.TaskEvent_type'(<<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_CastFrame.TaskEvent'(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). + +'d_field_CastFrame.TaskEvent_stream'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'd_field_CastFrame.TaskEvent_stream'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'d_field_CastFrame.TaskEvent_stream'(<<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_CastFrame.TaskEvent'(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). + +'skip_varint_CastFrame.TaskEvent'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'skip_varint_CastFrame.TaskEvent'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +'skip_varint_CastFrame.TaskEvent'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_CastFrame.TaskEvent'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'skip_length_delimited_CastFrame.TaskEvent'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> 'skip_length_delimited_CastFrame.TaskEvent'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +'skip_length_delimited_CastFrame.TaskEvent'(<<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_CastFrame.TaskEvent'(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). + +'skip_group_CastFrame.TaskEvent'(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + 'dfp_read_field_def_CastFrame.TaskEvent'(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). + +'skip_32_CastFrame.TaskEvent'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_CastFrame.TaskEvent'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +'skip_64_CastFrame.TaskEvent'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> 'dfp_read_field_def_CastFrame.TaskEvent'(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). + +decode_msg_CastFrame(Bin, TrUserData) -> dfp_read_field_def_CastFrame(Bin, 0, 0, 0, id(undefined, TrUserData), TrUserData). + +dfp_read_field_def_CastFrame(<<82, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_pub(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_CastFrame(<<90, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_command(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_CastFrame(<<98, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_data(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_CastFrame(<<106, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_CastFrame_task_event(Rest, Z1, Z2, F, F@_1, TrUserData); +dfp_read_field_def_CastFrame(<<>>, 0, 0, _, F@_1, _) -> #'CastFrame'{body = F@_1}; +dfp_read_field_def_CastFrame(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_CastFrame(Other, Z1, Z2, F, F@_1, TrUserData). + +dg_read_field_def_CastFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_CastFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +dg_read_field_def_CastFrame(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) -> + Key = X bsl N + Acc, + case Key of + 82 -> d_field_CastFrame_pub(Rest, 0, 0, 0, F@_1, TrUserData); + 90 -> d_field_CastFrame_command(Rest, 0, 0, 0, F@_1, TrUserData); + 98 -> d_field_CastFrame_data(Rest, 0, 0, 0, F@_1, TrUserData); + 106 -> d_field_CastFrame_task_event(Rest, 0, 0, 0, F@_1, TrUserData); + _ -> + case Key band 7 of + 0 -> skip_varint_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 1 -> skip_64_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 2 -> skip_length_delimited_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 3 -> skip_group_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData); + 5 -> skip_32_CastFrame(Rest, 0, 0, Key bsr 3, F@_1, TrUserData) + end + end; +dg_read_field_def_CastFrame(<<>>, 0, 0, _, F@_1, _) -> #'CastFrame'{body = F@_1}. + +d_field_CastFrame_pub(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_pub(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_CastFrame_pub(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_CastFrame.Pub'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_CastFrame(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({pub, NewFValue}, TrUserData); + {pub, MVPrev} -> id({pub, 'merge_msg_CastFrame.Pub'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({pub, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_CastFrame_command(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_command(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_CastFrame_command(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_CastFrame.Command'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_CastFrame(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({command, NewFValue}, TrUserData); + {command, MVPrev} -> id({command, 'merge_msg_CastFrame.Command'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({command, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_CastFrame_data(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_data(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_CastFrame_data(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_CastFrame.Data'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_CastFrame(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({data, NewFValue}, TrUserData); + {data, MVPrev} -> id({data, 'merge_msg_CastFrame.Data'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({data, NewFValue}, TrUserData) + end, + TrUserData). + +d_field_CastFrame_task_event(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_CastFrame_task_event(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +d_field_CastFrame_task_event(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) -> + {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, {id('decode_msg_CastFrame.TaskEvent'(Bs, TrUserData), TrUserData), Rest2} end, + dfp_read_field_def_CastFrame(RestF, + 0, + 0, + F, + case Prev of + undefined -> id({task_event, NewFValue}, TrUserData); + {task_event, MVPrev} -> id({task_event, 'merge_msg_CastFrame.TaskEvent'(MVPrev, NewFValue, TrUserData)}, TrUserData); + _ -> id({task_event, NewFValue}, TrUserData) + end, + TrUserData). + +skip_varint_CastFrame(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData); +skip_varint_CastFrame(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). + +skip_length_delimited_CastFrame(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> skip_length_delimited_CastFrame(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData); +skip_length_delimited_CastFrame(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) -> + Length = X bsl N + Acc, + <<_:Length/binary, Rest2/binary>> = Rest, + dfp_read_field_def_CastFrame(Rest2, 0, 0, F, F@_1, TrUserData). + +skip_group_CastFrame(Bin, _, Z2, FNum, F@_1, TrUserData) -> + {_, Rest} = read_group(Bin, FNum), + dfp_read_field_def_CastFrame(Rest, 0, Z2, FNum, F@_1, TrUserData). + +skip_32_CastFrame(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). + +skip_64_CastFrame(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_CastFrame(Rest, Z1, Z2, F, F@_1, TrUserData). decode_msg_ContainerRef(Bin, TrUserData) -> dfp_read_field_def_ContainerRef(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). @@ -3822,15 +3744,14 @@ merge_msgs(Prev, New, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of 'RequestFrame' -> merge_msg_RequestFrame(Prev, New, TrUserData); - 'ReplyFrame' -> merge_msg_ReplyFrame(Prev, New, TrUserData); - 'ReplyResult' -> merge_msg_ReplyResult(Prev, New, TrUserData); - 'ReplyError' -> merge_msg_ReplyError(Prev, New, TrUserData); - 'CastFrame' -> merge_msg_CastFrame(Prev, New, TrUserData); 'AuthRequest' -> merge_msg_AuthRequest(Prev, New, TrUserData); - 'Pub' -> merge_msg_Pub(Prev, New, TrUserData); - 'Command' -> merge_msg_Command(Prev, New, TrUserData); - 'Data' -> merge_msg_Data(Prev, New, TrUserData); - 'TaskEventStream' -> merge_msg_TaskEventStream(Prev, New, TrUserData); + 'ReplyFrame.Error' -> 'merge_msg_ReplyFrame.Error'(Prev, New, TrUserData); + 'ReplyFrame' -> merge_msg_ReplyFrame(Prev, New, TrUserData); + 'CastFrame.Pub' -> 'merge_msg_CastFrame.Pub'(Prev, New, TrUserData); + 'CastFrame.Command' -> 'merge_msg_CastFrame.Command'(Prev, New, TrUserData); + 'CastFrame.Data' -> 'merge_msg_CastFrame.Data'(Prev, New, TrUserData); + 'CastFrame.TaskEvent' -> 'merge_msg_CastFrame.TaskEvent'(Prev, New, TrUserData); + 'CastFrame' -> merge_msg_CastFrame(Prev, New, TrUserData); 'ContainerRef' -> merge_msg_ContainerRef(Prev, New, TrUserData); 'ContainerRequest.List' -> 'merge_msg_ContainerRequest.List'(Prev, New, TrUserData); 'ContainerRequest.Deploy' -> 'merge_msg_ContainerRequest.Deploy'(Prev, New, TrUserData); @@ -3867,50 +3788,6 @@ merge_msg_RequestFrame(#'RequestFrame'{packet_id = PFpacket_id, body = PFbody}, _ -> NFbody end}. --compile({nowarn_unused_function,merge_msg_ReplyFrame/3}). -merge_msg_ReplyFrame(#'ReplyFrame'{packet_id = PFpacket_id, reply = PFreply}, #'ReplyFrame'{packet_id = NFpacket_id, reply = NFreply}, TrUserData) -> - #'ReplyFrame'{packet_id = - if NFpacket_id =:= undefined -> PFpacket_id; - true -> NFpacket_id - end, - reply = - case {PFreply, NFreply} of - {{result, OPFreply}, {result, ONFreply}} -> {result, merge_msg_ReplyResult(OPFreply, ONFreply, TrUserData)}; - {{error, OPFreply}, {error, ONFreply}} -> {error, merge_msg_ReplyError(OPFreply, ONFreply, TrUserData)}; - {_, undefined} -> PFreply; - _ -> NFreply - end}. - --compile({nowarn_unused_function,merge_msg_ReplyResult/3}). -merge_msg_ReplyResult(#'ReplyResult'{data = PFdata}, #'ReplyResult'{data = NFdata}, _) -> - #'ReplyResult'{data = - if NFdata =:= undefined -> PFdata; - true -> NFdata - end}. - --compile({nowarn_unused_function,merge_msg_ReplyError/3}). -merge_msg_ReplyError(#'ReplyError'{code = PFcode, message = PFmessage}, #'ReplyError'{code = NFcode, message = NFmessage}, _) -> - #'ReplyError'{code = - if NFcode =:= undefined -> PFcode; - true -> NFcode - end, - message = - if NFmessage =:= undefined -> PFmessage; - true -> NFmessage - end}. - --compile({nowarn_unused_function,merge_msg_CastFrame/3}). -merge_msg_CastFrame(#'CastFrame'{body = PFbody}, #'CastFrame'{body = NFbody}, TrUserData) -> - #'CastFrame'{body = - case {PFbody, NFbody} of - {{pub, OPFbody}, {pub, ONFbody}} -> {pub, merge_msg_Pub(OPFbody, ONFbody, TrUserData)}; - {{command, OPFbody}, {command, ONFbody}} -> {command, merge_msg_Command(OPFbody, ONFbody, TrUserData)}; - {{data, OPFbody}, {data, ONFbody}} -> {data, merge_msg_Data(OPFbody, ONFbody, TrUserData)}; - {{event_stream, OPFbody}, {event_stream, ONFbody}} -> {event_stream, merge_msg_TaskEventStream(OPFbody, ONFbody, TrUserData)}; - {_, undefined} -> PFbody; - _ -> NFbody - end}. - -compile({nowarn_unused_function,merge_msg_AuthRequest/3}). merge_msg_AuthRequest(#'AuthRequest'{uuid = PFuuid, username = PFusername, salt = PFsalt, token = PFtoken, timestamp = PFtimestamp}, #'AuthRequest'{uuid = NFuuid, username = NFusername, salt = NFsalt, token = NFtoken, timestamp = NFtimestamp}, _) -> #'AuthRequest'{uuid = @@ -3934,57 +3811,93 @@ merge_msg_AuthRequest(#'AuthRequest'{uuid = PFuuid, username = PFusername, salt true -> NFtimestamp end}. --compile({nowarn_unused_function,merge_msg_Pub/3}). -merge_msg_Pub(#'Pub'{topic = PFtopic, qos = PFqos, content = PFcontent}, #'Pub'{topic = NFtopic, qos = NFqos, content = NFcontent}, _) -> - #'Pub'{topic = - if NFtopic =:= undefined -> PFtopic; - true -> NFtopic - end, - qos = - if NFqos =:= undefined -> PFqos; - true -> NFqos - end, - content = - if NFcontent =:= undefined -> PFcontent; - true -> NFcontent - end}. +-compile({nowarn_unused_function,'merge_msg_ReplyFrame.Error'/3}). +'merge_msg_ReplyFrame.Error'(#'ReplyFrame.Error'{code = PFcode, message = PFmessage}, #'ReplyFrame.Error'{code = NFcode, message = NFmessage}, _) -> + #'ReplyFrame.Error'{code = + if NFcode =:= undefined -> PFcode; + true -> NFcode + end, + message = + if NFmessage =:= undefined -> PFmessage; + true -> NFmessage + end}. --compile({nowarn_unused_function,merge_msg_Command/3}). -merge_msg_Command(#'Command'{command_type = PFcommand_type, command = PFcommand}, #'Command'{command_type = NFcommand_type, command = NFcommand}, _) -> - #'Command'{command_type = - if NFcommand_type =:= undefined -> PFcommand_type; - true -> NFcommand_type - end, - command = - if NFcommand =:= undefined -> PFcommand; - true -> NFcommand - end}. +-compile({nowarn_unused_function,merge_msg_ReplyFrame/3}). +merge_msg_ReplyFrame(#'ReplyFrame'{packet_id = PFpacket_id, reply = PFreply}, #'ReplyFrame'{packet_id = NFpacket_id, reply = NFreply}, TrUserData) -> + #'ReplyFrame'{packet_id = + if NFpacket_id =:= undefined -> PFpacket_id; + true -> NFpacket_id + end, + reply = + case {PFreply, NFreply} of + {{error, OPFreply}, {error, ONFreply}} -> {error, 'merge_msg_ReplyFrame.Error'(OPFreply, ONFreply, TrUserData)}; + {_, undefined} -> PFreply; + _ -> NFreply + end}. --compile({nowarn_unused_function,merge_msg_Data/3}). -merge_msg_Data(#'Data'{route_key = PFroute_key, metric = PFmetric}, #'Data'{route_key = NFroute_key, metric = NFmetric}, _) -> - #'Data'{route_key = - if NFroute_key =:= undefined -> PFroute_key; - true -> NFroute_key - end, - metric = - if NFmetric =:= undefined -> PFmetric; - true -> NFmetric - end}. +-compile({nowarn_unused_function,'merge_msg_CastFrame.Pub'/3}). +'merge_msg_CastFrame.Pub'(#'CastFrame.Pub'{topic = PFtopic, qos = PFqos, content = PFcontent}, #'CastFrame.Pub'{topic = NFtopic, qos = NFqos, content = NFcontent}, _) -> + #'CastFrame.Pub'{topic = + if NFtopic =:= undefined -> PFtopic; + true -> NFtopic + end, + qos = + if NFqos =:= undefined -> PFqos; + true -> NFqos + end, + content = + if NFcontent =:= undefined -> PFcontent; + true -> NFcontent + end}. --compile({nowarn_unused_function,merge_msg_TaskEventStream/3}). -merge_msg_TaskEventStream(#'TaskEventStream'{task_id = PFtask_id, type = PFtype, stream = PFstream}, #'TaskEventStream'{task_id = NFtask_id, type = NFtype, stream = NFstream}, _) -> - #'TaskEventStream'{task_id = - if NFtask_id =:= undefined -> PFtask_id; - true -> NFtask_id - end, - type = - if NFtype =:= undefined -> PFtype; - true -> NFtype - end, - stream = - if NFstream =:= undefined -> PFstream; - true -> NFstream - end}. +-compile({nowarn_unused_function,'merge_msg_CastFrame.Command'/3}). +'merge_msg_CastFrame.Command'(#'CastFrame.Command'{command_type = PFcommand_type, command = PFcommand}, #'CastFrame.Command'{command_type = NFcommand_type, command = NFcommand}, _) -> + #'CastFrame.Command'{command_type = + if NFcommand_type =:= undefined -> PFcommand_type; + true -> NFcommand_type + end, + command = + if NFcommand =:= undefined -> PFcommand; + true -> NFcommand + end}. + +-compile({nowarn_unused_function,'merge_msg_CastFrame.Data'/3}). +'merge_msg_CastFrame.Data'(#'CastFrame.Data'{route_key = PFroute_key, metric = PFmetric}, #'CastFrame.Data'{route_key = NFroute_key, metric = NFmetric}, _) -> + #'CastFrame.Data'{route_key = + if NFroute_key =:= undefined -> PFroute_key; + true -> NFroute_key + end, + metric = + if NFmetric =:= undefined -> PFmetric; + true -> NFmetric + end}. + +-compile({nowarn_unused_function,'merge_msg_CastFrame.TaskEvent'/3}). +'merge_msg_CastFrame.TaskEvent'(#'CastFrame.TaskEvent'{task_id = PFtask_id, type = PFtype, stream = PFstream}, #'CastFrame.TaskEvent'{task_id = NFtask_id, type = NFtype, stream = NFstream}, _) -> + #'CastFrame.TaskEvent'{task_id = + if NFtask_id =:= undefined -> PFtask_id; + true -> NFtask_id + end, + type = + if NFtype =:= undefined -> PFtype; + true -> NFtype + end, + stream = + if NFstream =:= undefined -> PFstream; + true -> NFstream + end}. + +-compile({nowarn_unused_function,merge_msg_CastFrame/3}). +merge_msg_CastFrame(#'CastFrame'{body = PFbody}, #'CastFrame'{body = NFbody}, TrUserData) -> + #'CastFrame'{body = + case {PFbody, NFbody} of + {{pub, OPFbody}, {pub, ONFbody}} -> {pub, 'merge_msg_CastFrame.Pub'(OPFbody, ONFbody, TrUserData)}; + {{command, OPFbody}, {command, ONFbody}} -> {command, 'merge_msg_CastFrame.Command'(OPFbody, ONFbody, TrUserData)}; + {{data, OPFbody}, {data, ONFbody}} -> {data, 'merge_msg_CastFrame.Data'(OPFbody, ONFbody, TrUserData)}; + {{task_event, OPFbody}, {task_event, ONFbody}} -> {task_event, 'merge_msg_CastFrame.TaskEvent'(OPFbody, ONFbody, TrUserData)}; + {_, undefined} -> PFbody; + _ -> NFbody + end}. -compile({nowarn_unused_function,merge_msg_ContainerRef/3}). merge_msg_ContainerRef(#'ContainerRef'{id = PFid, name = PFname}, #'ContainerRef'{id = NFid, name = NFname}, _) -> @@ -4362,15 +4275,14 @@ verify_msg(Msg, MsgName, Opts) -> TrUserData = proplists:get_value(user_data, Opts), case MsgName of 'RequestFrame' -> v_msg_RequestFrame(Msg, [MsgName], TrUserData); - 'ReplyFrame' -> v_msg_ReplyFrame(Msg, [MsgName], TrUserData); - 'ReplyResult' -> v_msg_ReplyResult(Msg, [MsgName], TrUserData); - 'ReplyError' -> v_msg_ReplyError(Msg, [MsgName], TrUserData); - 'CastFrame' -> v_msg_CastFrame(Msg, [MsgName], TrUserData); 'AuthRequest' -> v_msg_AuthRequest(Msg, [MsgName], TrUserData); - 'Pub' -> v_msg_Pub(Msg, [MsgName], TrUserData); - 'Command' -> v_msg_Command(Msg, [MsgName], TrUserData); - 'Data' -> v_msg_Data(Msg, [MsgName], TrUserData); - 'TaskEventStream' -> v_msg_TaskEventStream(Msg, [MsgName], TrUserData); + 'ReplyFrame.Error' -> 'v_msg_ReplyFrame.Error'(Msg, [MsgName], TrUserData); + 'ReplyFrame' -> v_msg_ReplyFrame(Msg, [MsgName], TrUserData); + 'CastFrame.Pub' -> 'v_msg_CastFrame.Pub'(Msg, [MsgName], TrUserData); + 'CastFrame.Command' -> 'v_msg_CastFrame.Command'(Msg, [MsgName], TrUserData); + 'CastFrame.Data' -> 'v_msg_CastFrame.Data'(Msg, [MsgName], TrUserData); + 'CastFrame.TaskEvent' -> 'v_msg_CastFrame.TaskEvent'(Msg, [MsgName], TrUserData); + 'CastFrame' -> v_msg_CastFrame(Msg, [MsgName], TrUserData); 'ContainerRef' -> v_msg_ContainerRef(Msg, [MsgName], TrUserData); 'ContainerRequest.List' -> 'v_msg_ContainerRequest.List'(Msg, [MsgName], TrUserData); 'ContainerRequest.Deploy' -> 'v_msg_ContainerRequest.Deploy'(Msg, [MsgName], TrUserData); @@ -4410,64 +4322,6 @@ v_msg_RequestFrame(#'RequestFrame'{packet_id = F1, body = F2}, Path, TrUserData) ok; v_msg_RequestFrame(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RequestFrame'}, X, Path). --compile({nowarn_unused_function,v_msg_ReplyFrame/3}). --dialyzer({nowarn_function,v_msg_ReplyFrame/3}). -v_msg_ReplyFrame(#'ReplyFrame'{packet_id = F1, reply = F2}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_uint32(F1, [packet_id | Path], TrUserData) - end, - case F2 of - undefined -> ok; - {result, OF2} -> v_submsg_ReplyResult(OF2, [result, reply | Path], TrUserData); - {error, OF2} -> v_submsg_ReplyError(OF2, [error, reply | Path], TrUserData); - _ -> mk_type_error(invalid_oneof, F2, [reply | Path]) - end, - ok; -v_msg_ReplyFrame(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ReplyFrame'}, X, Path). - --compile({nowarn_unused_function,v_submsg_ReplyResult/3}). --dialyzer({nowarn_function,v_submsg_ReplyResult/3}). -v_submsg_ReplyResult(Msg, Path, TrUserData) -> v_msg_ReplyResult(Msg, Path, TrUserData). - --compile({nowarn_unused_function,v_msg_ReplyResult/3}). --dialyzer({nowarn_function,v_msg_ReplyResult/3}). -v_msg_ReplyResult(#'ReplyResult'{data = F1}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_bytes(F1, [data | Path], TrUserData) - end, - ok; -v_msg_ReplyResult(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ReplyResult'}, X, Path). - --compile({nowarn_unused_function,v_submsg_ReplyError/3}). --dialyzer({nowarn_function,v_submsg_ReplyError/3}). -v_submsg_ReplyError(Msg, Path, TrUserData) -> v_msg_ReplyError(Msg, Path, TrUserData). - --compile({nowarn_unused_function,v_msg_ReplyError/3}). --dialyzer({nowarn_function,v_msg_ReplyError/3}). -v_msg_ReplyError(#'ReplyError'{code = F1, message = F2}, Path, TrUserData) -> - if F1 == undefined -> ok; - true -> v_type_int32(F1, [code | Path], TrUserData) - end, - if F2 == undefined -> ok; - true -> v_type_string(F2, [message | Path], TrUserData) - end, - ok; -v_msg_ReplyError(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ReplyError'}, X, Path). - --compile({nowarn_unused_function,v_msg_CastFrame/3}). --dialyzer({nowarn_function,v_msg_CastFrame/3}). -v_msg_CastFrame(#'CastFrame'{body = F1}, Path, TrUserData) -> - case F1 of - undefined -> ok; - {pub, OF1} -> v_submsg_Pub(OF1, [pub, body | Path], TrUserData); - {command, OF1} -> v_submsg_Command(OF1, [command, body | Path], TrUserData); - {data, OF1} -> v_submsg_Data(OF1, [data, body | Path], TrUserData); - {event_stream, OF1} -> v_submsg_TaskEventStream(OF1, [event_stream, body | Path], TrUserData); - _ -> mk_type_error(invalid_oneof, F1, [body | Path]) - end, - ok; -v_msg_CastFrame(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'CastFrame'}, X, Path). - -compile({nowarn_unused_function,v_submsg_AuthRequest/3}). -dialyzer({nowarn_function,v_submsg_AuthRequest/3}). v_submsg_AuthRequest(Msg, Path, TrUserData) -> v_msg_AuthRequest(Msg, Path, TrUserData). @@ -4493,13 +4347,44 @@ v_msg_AuthRequest(#'AuthRequest'{uuid = F1, username = F2, salt = F3, token = F4 ok; v_msg_AuthRequest(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'AuthRequest'}, X, Path). --compile({nowarn_unused_function,v_submsg_Pub/3}). --dialyzer({nowarn_function,v_submsg_Pub/3}). -v_submsg_Pub(Msg, Path, TrUserData) -> v_msg_Pub(Msg, Path, TrUserData). +-compile({nowarn_unused_function,'v_submsg_ReplyFrame.Error'/3}). +-dialyzer({nowarn_function,'v_submsg_ReplyFrame.Error'/3}). +'v_submsg_ReplyFrame.Error'(Msg, Path, TrUserData) -> 'v_msg_ReplyFrame.Error'(Msg, Path, TrUserData). --compile({nowarn_unused_function,v_msg_Pub/3}). --dialyzer({nowarn_function,v_msg_Pub/3}). -v_msg_Pub(#'Pub'{topic = F1, qos = F2, content = F3}, Path, TrUserData) -> +-compile({nowarn_unused_function,'v_msg_ReplyFrame.Error'/3}). +-dialyzer({nowarn_function,'v_msg_ReplyFrame.Error'/3}). +'v_msg_ReplyFrame.Error'(#'ReplyFrame.Error'{code = F1, message = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_int32(F1, [code | Path], TrUserData) + end, + if F2 == undefined -> ok; + true -> v_type_string(F2, [message | Path], TrUserData) + end, + ok; +'v_msg_ReplyFrame.Error'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ReplyFrame.Error'}, X, Path). + +-compile({nowarn_unused_function,v_msg_ReplyFrame/3}). +-dialyzer({nowarn_function,v_msg_ReplyFrame/3}). +v_msg_ReplyFrame(#'ReplyFrame'{packet_id = F1, reply = F2}, Path, TrUserData) -> + if F1 == undefined -> ok; + true -> v_type_uint32(F1, [packet_id | Path], TrUserData) + end, + case F2 of + undefined -> ok; + {result, OF2} -> v_type_bytes(OF2, [result, reply | Path], TrUserData); + {error, OF2} -> 'v_submsg_ReplyFrame.Error'(OF2, [error, reply | Path], TrUserData); + _ -> mk_type_error(invalid_oneof, F2, [reply | Path]) + end, + ok; +v_msg_ReplyFrame(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'ReplyFrame'}, X, Path). + +-compile({nowarn_unused_function,'v_submsg_CastFrame.Pub'/3}). +-dialyzer({nowarn_function,'v_submsg_CastFrame.Pub'/3}). +'v_submsg_CastFrame.Pub'(Msg, Path, TrUserData) -> 'v_msg_CastFrame.Pub'(Msg, Path, TrUserData). + +-compile({nowarn_unused_function,'v_msg_CastFrame.Pub'/3}). +-dialyzer({nowarn_function,'v_msg_CastFrame.Pub'/3}). +'v_msg_CastFrame.Pub'(#'CastFrame.Pub'{topic = F1, qos = F2, content = F3}, Path, TrUserData) -> if F1 == undefined -> ok; true -> v_type_bytes(F1, [topic | Path], TrUserData) end, @@ -4510,15 +4395,15 @@ v_msg_Pub(#'Pub'{topic = F1, qos = F2, content = F3}, Path, TrUserData) -> true -> v_type_bytes(F3, [content | Path], TrUserData) end, ok; -v_msg_Pub(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Pub'}, X, Path). +'v_msg_CastFrame.Pub'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'CastFrame.Pub'}, X, Path). --compile({nowarn_unused_function,v_submsg_Command/3}). --dialyzer({nowarn_function,v_submsg_Command/3}). -v_submsg_Command(Msg, Path, TrUserData) -> v_msg_Command(Msg, Path, TrUserData). +-compile({nowarn_unused_function,'v_submsg_CastFrame.Command'/3}). +-dialyzer({nowarn_function,'v_submsg_CastFrame.Command'/3}). +'v_submsg_CastFrame.Command'(Msg, Path, TrUserData) -> 'v_msg_CastFrame.Command'(Msg, Path, TrUserData). --compile({nowarn_unused_function,v_msg_Command/3}). --dialyzer({nowarn_function,v_msg_Command/3}). -v_msg_Command(#'Command'{command_type = F1, command = F2}, Path, TrUserData) -> +-compile({nowarn_unused_function,'v_msg_CastFrame.Command'/3}). +-dialyzer({nowarn_function,'v_msg_CastFrame.Command'/3}). +'v_msg_CastFrame.Command'(#'CastFrame.Command'{command_type = F1, command = F2}, Path, TrUserData) -> if F1 == undefined -> ok; true -> v_type_int32(F1, [command_type | Path], TrUserData) end, @@ -4526,15 +4411,15 @@ v_msg_Command(#'Command'{command_type = F1, command = F2}, Path, TrUserData) -> true -> v_type_bytes(F2, [command | Path], TrUserData) end, ok; -v_msg_Command(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Command'}, X, Path). +'v_msg_CastFrame.Command'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'CastFrame.Command'}, X, Path). --compile({nowarn_unused_function,v_submsg_Data/3}). --dialyzer({nowarn_function,v_submsg_Data/3}). -v_submsg_Data(Msg, Path, TrUserData) -> v_msg_Data(Msg, Path, TrUserData). +-compile({nowarn_unused_function,'v_submsg_CastFrame.Data'/3}). +-dialyzer({nowarn_function,'v_submsg_CastFrame.Data'/3}). +'v_submsg_CastFrame.Data'(Msg, Path, TrUserData) -> 'v_msg_CastFrame.Data'(Msg, Path, TrUserData). --compile({nowarn_unused_function,v_msg_Data/3}). --dialyzer({nowarn_function,v_msg_Data/3}). -v_msg_Data(#'Data'{route_key = F1, metric = F2}, Path, TrUserData) -> +-compile({nowarn_unused_function,'v_msg_CastFrame.Data'/3}). +-dialyzer({nowarn_function,'v_msg_CastFrame.Data'/3}). +'v_msg_CastFrame.Data'(#'CastFrame.Data'{route_key = F1, metric = F2}, Path, TrUserData) -> if F1 == undefined -> ok; true -> v_type_bytes(F1, [route_key | Path], TrUserData) end, @@ -4542,15 +4427,15 @@ v_msg_Data(#'Data'{route_key = F1, metric = F2}, Path, TrUserData) -> true -> v_type_bytes(F2, [metric | Path], TrUserData) end, ok; -v_msg_Data(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'Data'}, X, Path). +'v_msg_CastFrame.Data'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'CastFrame.Data'}, X, Path). --compile({nowarn_unused_function,v_submsg_TaskEventStream/3}). --dialyzer({nowarn_function,v_submsg_TaskEventStream/3}). -v_submsg_TaskEventStream(Msg, Path, TrUserData) -> v_msg_TaskEventStream(Msg, Path, TrUserData). +-compile({nowarn_unused_function,'v_submsg_CastFrame.TaskEvent'/3}). +-dialyzer({nowarn_function,'v_submsg_CastFrame.TaskEvent'/3}). +'v_submsg_CastFrame.TaskEvent'(Msg, Path, TrUserData) -> 'v_msg_CastFrame.TaskEvent'(Msg, Path, TrUserData). --compile({nowarn_unused_function,v_msg_TaskEventStream/3}). --dialyzer({nowarn_function,v_msg_TaskEventStream/3}). -v_msg_TaskEventStream(#'TaskEventStream'{task_id = F1, type = F2, stream = F3}, Path, TrUserData) -> +-compile({nowarn_unused_function,'v_msg_CastFrame.TaskEvent'/3}). +-dialyzer({nowarn_function,'v_msg_CastFrame.TaskEvent'/3}). +'v_msg_CastFrame.TaskEvent'(#'CastFrame.TaskEvent'{task_id = F1, type = F2, stream = F3}, Path, TrUserData) -> if F1 == undefined -> ok; true -> v_type_int32(F1, [task_id | Path], TrUserData) end, @@ -4561,7 +4446,21 @@ v_msg_TaskEventStream(#'TaskEventStream'{task_id = F1, type = F2, stream = F3}, true -> v_type_bytes(F3, [stream | Path], TrUserData) end, ok; -v_msg_TaskEventStream(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'TaskEventStream'}, X, Path). +'v_msg_CastFrame.TaskEvent'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'CastFrame.TaskEvent'}, X, Path). + +-compile({nowarn_unused_function,v_msg_CastFrame/3}). +-dialyzer({nowarn_function,v_msg_CastFrame/3}). +v_msg_CastFrame(#'CastFrame'{body = F1}, Path, TrUserData) -> + case F1 of + undefined -> ok; + {pub, OF1} -> 'v_submsg_CastFrame.Pub'(OF1, [pub, body | Path], TrUserData); + {command, OF1} -> 'v_submsg_CastFrame.Command'(OF1, [command, body | Path], TrUserData); + {data, OF1} -> 'v_submsg_CastFrame.Data'(OF1, [data, body | Path], TrUserData); + {task_event, OF1} -> 'v_submsg_CastFrame.TaskEvent'(OF1, [task_event, body | Path], TrUserData); + _ -> mk_type_error(invalid_oneof, F1, [body | Path]) + end, + ok; +v_msg_CastFrame(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'CastFrame'}, X, Path). -compile({nowarn_unused_function,v_submsg_ContainerRef/3}). -dialyzer({nowarn_function,v_submsg_ContainerRef/3}). @@ -5149,21 +5048,7 @@ get_msg_defs() -> [{{msg, 'RequestFrame'}, [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #gpb_oneof{name = body, rnum = 3, - fields = [#field{name = auth_request, fnum = 2, rnum = 3, type = {msg, 'AuthRequest'}, occurrence = optional, opts = []}, #field{name = container_request, fnum = 3, rnum = 3, type = {msg, 'ContainerRequest'}, occurrence = optional, opts = []}], - opts = []}]}, - {{msg, 'ReplyFrame'}, - [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, - #gpb_oneof{name = reply, rnum = 3, - fields = [#field{name = result, fnum = 2, rnum = 3, type = {msg, 'ReplyResult'}, occurrence = optional, opts = []}, #field{name = error, fnum = 3, rnum = 3, type = {msg, 'ReplyError'}, occurrence = optional, opts = []}], opts = []}]}, - {{msg, 'ReplyResult'}, [#field{name = data, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}]}, - {{msg, 'ReplyError'}, [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, - {{msg, 'CastFrame'}, - [#gpb_oneof{name = body, rnum = 2, - fields = - [#field{name = pub, fnum = 1, rnum = 2, type = {msg, 'Pub'}, occurrence = optional, opts = []}, - #field{name = command, fnum = 2, rnum = 2, type = {msg, 'Command'}, occurrence = optional, opts = []}, - #field{name = data, fnum = 3, rnum = 2, type = {msg, 'Data'}, occurrence = optional, opts = []}, - #field{name = event_stream, fnum = 4, rnum = 2, type = {msg, 'TaskEventStream'}, occurrence = optional, opts = []}], + fields = [#field{name = auth_request, fnum = 10, rnum = 3, type = {msg, 'AuthRequest'}, occurrence = optional, opts = []}, #field{name = container_request, fnum = 11, rnum = 3, type = {msg, 'ContainerRequest'}, occurrence = optional, opts = []}], opts = []}]}, {{msg, 'AuthRequest'}, [#field{name = uuid, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, @@ -5171,16 +5056,29 @@ get_msg_defs() -> #field{name = salt, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}, #field{name = token, fnum = 4, rnum = 5, type = bytes, occurrence = optional, opts = []}, #field{name = timestamp, fnum = 5, rnum = 6, type = int32, occurrence = optional, opts = []}]}, - {{msg, 'Pub'}, + {{msg, 'ReplyFrame.Error'}, [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, + {{msg, 'ReplyFrame'}, + [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #gpb_oneof{name = reply, rnum = 3, fields = [#field{name = result, fnum = 10, rnum = 3, type = bytes, occurrence = optional, opts = []}, #field{name = error, fnum = 11, rnum = 3, type = {msg, 'ReplyFrame.Error'}, occurrence = optional, opts = []}], + opts = []}]}, + {{msg, 'CastFrame.Pub'}, [#field{name = topic, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = qos, fnum = 2, rnum = 3, type = int32, occurrence = optional, opts = []}, #field{name = content, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]}, - {{msg, 'Command'}, [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, - {{msg, 'Data'}, [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, - {{msg, 'TaskEventStream'}, + {{msg, 'CastFrame.Command'}, [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'CastFrame.Data'}, [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'CastFrame.TaskEvent'}, [#field{name = task_id, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = type, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}, #field{name = stream, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]}, + {{msg, 'CastFrame'}, + [#gpb_oneof{name = body, rnum = 2, + fields = + [#field{name = pub, fnum = 10, rnum = 2, type = {msg, 'CastFrame.Pub'}, occurrence = optional, opts = []}, + #field{name = command, fnum = 11, rnum = 2, type = {msg, 'CastFrame.Command'}, occurrence = optional, opts = []}, + #field{name = data, fnum = 12, rnum = 2, type = {msg, 'CastFrame.Data'}, occurrence = optional, opts = []}, + #field{name = task_event, fnum = 13, rnum = 2, type = {msg, 'CastFrame.TaskEvent'}, occurrence = optional, opts = []}], + opts = []}]}, {{msg, 'ContainerRef'}, [#field{name = id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = name, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, {{msg, 'ContainerRequest.List'}, [#field{name = all, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]}, {{msg, 'ContainerRequest.Deploy'}, [#field{name = task_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = {msg, 'ContainerDeployParams'}, occurrence = optional, opts = []}]}, @@ -5260,15 +5158,14 @@ get_msg_defs() -> get_msg_names() -> ['RequestFrame', - 'ReplyFrame', - 'ReplyResult', - 'ReplyError', - 'CastFrame', 'AuthRequest', - 'Pub', - 'Command', - 'Data', - 'TaskEventStream', + 'ReplyFrame.Error', + 'ReplyFrame', + 'CastFrame.Pub', + 'CastFrame.Command', + 'CastFrame.Data', + 'CastFrame.TaskEvent', + 'CastFrame', 'ContainerRef', 'ContainerRequest.List', 'ContainerRequest.Deploy', @@ -5296,15 +5193,14 @@ get_group_names() -> []. get_msg_or_group_names() -> ['RequestFrame', - 'ReplyFrame', - 'ReplyResult', - 'ReplyError', - 'CastFrame', 'AuthRequest', - 'Pub', - 'Command', - 'Data', - 'TaskEventStream', + 'ReplyFrame.Error', + 'ReplyFrame', + 'CastFrame.Pub', + 'CastFrame.Command', + 'CastFrame.Data', + 'CastFrame.TaskEvent', + 'CastFrame', 'ContainerRef', 'ContainerRequest.List', 'ContainerRequest.Deploy', @@ -5344,21 +5240,7 @@ fetch_enum_def(EnumName) -> erlang:error({no_such_enum, EnumName}). find_msg_def('RequestFrame') -> [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, #gpb_oneof{name = body, rnum = 3, - fields = [#field{name = auth_request, fnum = 2, rnum = 3, type = {msg, 'AuthRequest'}, occurrence = optional, opts = []}, #field{name = container_request, fnum = 3, rnum = 3, type = {msg, 'ContainerRequest'}, occurrence = optional, opts = []}], - opts = []}]; -find_msg_def('ReplyFrame') -> - [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, - #gpb_oneof{name = reply, rnum = 3, - fields = [#field{name = result, fnum = 2, rnum = 3, type = {msg, 'ReplyResult'}, occurrence = optional, opts = []}, #field{name = error, fnum = 3, rnum = 3, type = {msg, 'ReplyError'}, occurrence = optional, opts = []}], opts = []}]; -find_msg_def('ReplyResult') -> [#field{name = data, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}]; -find_msg_def('ReplyError') -> [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; -find_msg_def('CastFrame') -> - [#gpb_oneof{name = body, rnum = 2, - fields = - [#field{name = pub, fnum = 1, rnum = 2, type = {msg, 'Pub'}, occurrence = optional, opts = []}, - #field{name = command, fnum = 2, rnum = 2, type = {msg, 'Command'}, occurrence = optional, opts = []}, - #field{name = data, fnum = 3, rnum = 2, type = {msg, 'Data'}, occurrence = optional, opts = []}, - #field{name = event_stream, fnum = 4, rnum = 2, type = {msg, 'TaskEventStream'}, occurrence = optional, opts = []}], + fields = [#field{name = auth_request, fnum = 10, rnum = 3, type = {msg, 'AuthRequest'}, occurrence = optional, opts = []}, #field{name = container_request, fnum = 11, rnum = 3, type = {msg, 'ContainerRequest'}, occurrence = optional, opts = []}], opts = []}]; find_msg_def('AuthRequest') -> [#field{name = uuid, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, @@ -5366,16 +5248,29 @@ find_msg_def('AuthRequest') -> #field{name = salt, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}, #field{name = token, fnum = 4, rnum = 5, type = bytes, occurrence = optional, opts = []}, #field{name = timestamp, fnum = 5, rnum = 6, type = int32, occurrence = optional, opts = []}]; -find_msg_def('Pub') -> +find_msg_def('ReplyFrame.Error') -> [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; +find_msg_def('ReplyFrame') -> + [#field{name = packet_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #gpb_oneof{name = reply, rnum = 3, fields = [#field{name = result, fnum = 10, rnum = 3, type = bytes, occurrence = optional, opts = []}, #field{name = error, fnum = 11, rnum = 3, type = {msg, 'ReplyFrame.Error'}, occurrence = optional, opts = []}], + opts = []}]; +find_msg_def('CastFrame.Pub') -> [#field{name = topic, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = qos, fnum = 2, rnum = 3, type = int32, occurrence = optional, opts = []}, #field{name = content, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]; -find_msg_def('Command') -> [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; -find_msg_def('Data') -> [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; -find_msg_def('TaskEventStream') -> +find_msg_def('CastFrame.Command') -> [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('CastFrame.Data') -> [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('CastFrame.TaskEvent') -> [#field{name = task_id, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = type, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}, #field{name = stream, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]; +find_msg_def('CastFrame') -> + [#gpb_oneof{name = body, rnum = 2, + fields = + [#field{name = pub, fnum = 10, rnum = 2, type = {msg, 'CastFrame.Pub'}, occurrence = optional, opts = []}, + #field{name = command, fnum = 11, rnum = 2, type = {msg, 'CastFrame.Command'}, occurrence = optional, opts = []}, + #field{name = data, fnum = 12, rnum = 2, type = {msg, 'CastFrame.Data'}, occurrence = optional, opts = []}, + #field{name = task_event, fnum = 13, rnum = 2, type = {msg, 'CastFrame.TaskEvent'}, occurrence = optional, opts = []}], + opts = []}]; find_msg_def('ContainerRef') -> [#field{name = id, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = name, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; find_msg_def('ContainerRequest.List') -> [#field{name = all, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]; find_msg_def('ContainerRequest.Deploy') -> @@ -5511,15 +5406,14 @@ service_and_rpc_name_to_fqbins(S, R) -> error({gpb_error, {badservice_or_rpc, {S fqbin_to_msg_name(<<"RequestFrame">>) -> 'RequestFrame'; -fqbin_to_msg_name(<<"ReplyFrame">>) -> 'ReplyFrame'; -fqbin_to_msg_name(<<"ReplyResult">>) -> 'ReplyResult'; -fqbin_to_msg_name(<<"ReplyError">>) -> 'ReplyError'; -fqbin_to_msg_name(<<"CastFrame">>) -> 'CastFrame'; fqbin_to_msg_name(<<"AuthRequest">>) -> 'AuthRequest'; -fqbin_to_msg_name(<<"Pub">>) -> 'Pub'; -fqbin_to_msg_name(<<"Command">>) -> 'Command'; -fqbin_to_msg_name(<<"Data">>) -> 'Data'; -fqbin_to_msg_name(<<"TaskEventStream">>) -> 'TaskEventStream'; +fqbin_to_msg_name(<<"ReplyFrame.Error">>) -> 'ReplyFrame.Error'; +fqbin_to_msg_name(<<"ReplyFrame">>) -> 'ReplyFrame'; +fqbin_to_msg_name(<<"CastFrame.Pub">>) -> 'CastFrame.Pub'; +fqbin_to_msg_name(<<"CastFrame.Command">>) -> 'CastFrame.Command'; +fqbin_to_msg_name(<<"CastFrame.Data">>) -> 'CastFrame.Data'; +fqbin_to_msg_name(<<"CastFrame.TaskEvent">>) -> 'CastFrame.TaskEvent'; +fqbin_to_msg_name(<<"CastFrame">>) -> 'CastFrame'; fqbin_to_msg_name(<<"ContainerRef">>) -> 'ContainerRef'; fqbin_to_msg_name(<<"ContainerRequest.List">>) -> 'ContainerRequest.List'; fqbin_to_msg_name(<<"ContainerRequest.Deploy">>) -> 'ContainerRequest.Deploy'; @@ -5544,15 +5438,14 @@ fqbin_to_msg_name(E) -> error({gpb_error, {badmsg, E}}). msg_name_to_fqbin('RequestFrame') -> <<"RequestFrame">>; -msg_name_to_fqbin('ReplyFrame') -> <<"ReplyFrame">>; -msg_name_to_fqbin('ReplyResult') -> <<"ReplyResult">>; -msg_name_to_fqbin('ReplyError') -> <<"ReplyError">>; -msg_name_to_fqbin('CastFrame') -> <<"CastFrame">>; msg_name_to_fqbin('AuthRequest') -> <<"AuthRequest">>; -msg_name_to_fqbin('Pub') -> <<"Pub">>; -msg_name_to_fqbin('Command') -> <<"Command">>; -msg_name_to_fqbin('Data') -> <<"Data">>; -msg_name_to_fqbin('TaskEventStream') -> <<"TaskEventStream">>; +msg_name_to_fqbin('ReplyFrame.Error') -> <<"ReplyFrame.Error">>; +msg_name_to_fqbin('ReplyFrame') -> <<"ReplyFrame">>; +msg_name_to_fqbin('CastFrame.Pub') -> <<"CastFrame.Pub">>; +msg_name_to_fqbin('CastFrame.Command') -> <<"CastFrame.Command">>; +msg_name_to_fqbin('CastFrame.Data') -> <<"CastFrame.Data">>; +msg_name_to_fqbin('CastFrame.TaskEvent') -> <<"CastFrame.TaskEvent">>; +msg_name_to_fqbin('CastFrame') -> <<"CastFrame">>; msg_name_to_fqbin('ContainerRef') -> <<"ContainerRef">>; msg_name_to_fqbin('ContainerRequest.List') -> <<"ContainerRequest.List">>; msg_name_to_fqbin('ContainerRequest.Deploy') -> <<"ContainerRequest.Deploy">>; @@ -5611,7 +5504,7 @@ get_all_source_basenames() -> ["message.proto", "docker.proto"]. get_all_proto_names() -> ["message", "docker"]. -get_msg_containment("message") -> ['AuthRequest', 'CastFrame', 'Command', 'Data', 'Pub', 'ReplyError', 'ReplyFrame', 'ReplyResult', 'RequestFrame', 'TaskEventStream']; +get_msg_containment("message") -> ['AuthRequest', 'CastFrame', 'CastFrame.Command', 'CastFrame.Data', 'CastFrame.Pub', 'CastFrame.TaskEvent', 'ReplyFrame', 'ReplyFrame.Error', 'RequestFrame']; get_msg_containment("docker") -> ['ContainerDeployParams', 'ContainerRef', @@ -5657,9 +5550,9 @@ get_enum_containment(P) -> error({gpb_error, {badproto, P}}). get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Stop">>) -> "docker"; -get_proto_by_msg_name_as_fqbin(<<"Data">>) -> "message"; -get_proto_by_msg_name_as_fqbin(<<"ReplyError">>) -> "message"; -get_proto_by_msg_name_as_fqbin(<<"Pub">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"CastFrame.Data">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"ReplyFrame.Error">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"CastFrame.Pub">>) -> "message"; get_proto_by_msg_name_as_fqbin(<<"DockerCreateOptions">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"ContainerDeployParams">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"Ulimit">>) -> "docker"; @@ -5668,8 +5561,8 @@ get_proto_by_msg_name_as_fqbin(<<"DockerExposedPort">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Start">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.List">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"ContainerRequest">>) -> "docker"; -get_proto_by_msg_name_as_fqbin(<<"ReplyResult">>) -> "message"; -get_proto_by_msg_name_as_fqbin(<<"Command">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"CastFrame.TaskEvent">>) -> "message"; +get_proto_by_msg_name_as_fqbin(<<"CastFrame.Command">>) -> "message"; get_proto_by_msg_name_as_fqbin(<<"AuthRequest">>) -> "message"; get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Remove">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"RequestFrame">>) -> "message"; @@ -5685,7 +5578,6 @@ get_proto_by_msg_name_as_fqbin(<<"RestartPolicy">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Deploy">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"Healthcheck">>) -> "docker"; get_proto_by_msg_name_as_fqbin(<<"ContainerRequest.Kill">>) -> "docker"; -get_proto_by_msg_name_as_fqbin(<<"TaskEventStream">>) -> "message"; get_proto_by_msg_name_as_fqbin(E) -> error({gpb_error, {badmsg, E}}). diff --git a/src/simulator/simulator_api_handler.erl b/src/simulator/simulator_api_handler.erl new file mode 100644 index 0000000..4e2b376 --- /dev/null +++ b/src/simulator/simulator_api_handler.erl @@ -0,0 +1,156 @@ +%%%------------------------------------------------------------------- +%%% @author Codex +%%% @doc +%%% 本地模拟 control api,用于替代 iot_api_client 依赖的远端接口。 +%%% @end +%%%------------------------------------------------------------------- +-module(simulator_api_handler). + +-include("endpoint.hrl"). + +-export([handle_request/4]). + +-define(HOST_UUID, <<"sim-host-001">>). +-define(HOST_ID, 1). +-define(DEVICE_UUID, <<"sim-device-001">>). +-define(DEVICE_ID, 1). +-define(ENDPOINT_ID, 1). +-define(TABLE, ?MODULE). + +-spec handle_request(string(), string(), map(), map()) -> + {ok, non_neg_integer(), iodata()}. +handle_request("GET", "/simulator/get_all_hosts", _, _) -> + {ok, 200, iot_util:json_data([?HOST_UUID])}; +handle_request("GET", "/simulator/get_host_by_uuid", #{<<"uuid">> := UUID}, _) when is_binary(UUID) -> + reply_host_by_uuid(UUID); +handle_request("GET", "/simulator/get_host_by_id", #{<<"host_id">> := HostIdBin}, _) when is_binary(HostIdBin) -> + case binary_to_integer(HostIdBin) of + ?HOST_ID -> + {ok, 200, iot_util:json_data(host_info())}; + _ -> + {ok, 200, iot_util:json_error(404, <<"host not found">>)} + end; +handle_request("POST", "/simulator/change_host_status", _, #{<<"uuid">> := UUID, <<"new_status">> := Status}) + when is_binary(UUID), is_integer(Status) -> + reply_change_host_status(UUID, Status); +handle_request("GET", "/simulator/get_host_devices", #{<<"host_id">> := HostIdBin}, _) when is_binary(HostIdBin) -> + case binary_to_integer(HostIdBin) of + ?HOST_ID -> + {ok, 200, iot_util:json_data([device_info()])}; + _ -> + {ok, 200, iot_util:json_error(404, <<"host not found">>)} + end; +handle_request("GET", "/simulator/get_device_by_uuid", #{<<"device_uuid">> := DeviceUUID}, _) when is_binary(DeviceUUID) -> + case DeviceUUID of + ?DEVICE_UUID -> + {ok, 200, iot_util:json_data(device_info())}; + _ -> + {ok, 200, iot_util:json_error(404, <<"device not found">>)} + end; +handle_request("POST", "/simulator/change_device_status", _, #{<<"device_uuid">> := DeviceUUID, <<"new_status">> := Status}) + when is_binary(DeviceUUID), is_integer(Status) -> + reply_change_device_status(DeviceUUID, Status); +handle_request("GET", "/simulator/get_all_endpoints", _, _) -> + {ok, 200, iot_util:json_data([endpoint_info()])}; +handle_request("GET", "/simulator/get_endpoint", #{<<"id">> := IdBin}, _) when is_binary(IdBin) -> + case binary_to_integer(IdBin) of + ?ENDPOINT_ID -> + {ok, 200, iot_util:json_data(endpoint_info())}; + _ -> + {ok, 200, iot_util:json_error(404, <<"endpoint not found">>)} + end; +handle_request("POST", "/simulator/endpoint_sink", _, Body) -> + logger:debug("[simulator_api_handler] receive endpoint sink body: ~p", [Body]), + {ok, 200, iot_util:json_data(<<"ok">>)}; +handle_request(_, Path, _, _) -> + PathBin = list_to_binary(Path), + {ok, 200, iot_util:json_error(-1, <<"url: ", PathBin/binary, " not found">>)}. + +%%%=================================================================== +%%% Internal functions +%%%=================================================================== + +-spec reply_host_by_uuid(binary()) -> {ok, non_neg_integer(), iodata()}. +reply_host_by_uuid(?HOST_UUID) -> + {ok, 200, iot_util:json_data(host_info())}; +reply_host_by_uuid(_) -> + {ok, 200, iot_util:json_error(404, <<"host not found">>)}. + +-spec reply_change_host_status(binary(), integer()) -> {ok, non_neg_integer(), iodata()}. +reply_change_host_status(?HOST_UUID, Status) -> + ok = put_state({host_status, ?HOST_UUID}, Status), + {ok, 200, iot_util:json_data(1)}; +reply_change_host_status(_, _) -> + {ok, 200, iot_util:json_error(404, <<"host not found">>)}. + +-spec reply_change_device_status(binary(), integer()) -> {ok, non_neg_integer(), iodata()}. +reply_change_device_status(?DEVICE_UUID, Status) -> + ok = put_state({device_status, ?DEVICE_UUID}, Status), + {ok, 200, iot_util:json_data(1)}; +reply_change_device_status(_, _) -> + {ok, 200, iot_util:json_error(404, <<"device not found">>)}. + +-spec host_info() -> map(). +host_info() -> + #{ + <<"id">> => ?HOST_ID, + <<"uuid">> => ?HOST_UUID, + <<"authorize_status">> => 1, + <<"status">> => get_state({host_status, ?HOST_UUID}, 1) + }. + +-spec device_info() -> map(). +device_info() -> + #{ + <<"id">> => ?DEVICE_ID, + <<"host_id">> => ?HOST_ID, + <<"device_uuid">> => ?DEVICE_UUID, + <<"status">> => get_state({device_status, ?DEVICE_UUID}, 1) + }. + +-spec endpoint_info() -> map(). +endpoint_info() -> + #{ + <<"id">> => ?ENDPOINT_ID, + <<"matcher">> => <<"simulator.metric">>, + <<"title">> => <<"Simulator HTTP Endpoint">>, + <<"type">> => <<"http">>, + <<"config">> => #{ + <<"url">> => <<"http://127.0.0.1:18090/simulator/endpoint_sink">>, + <<"pool_size">> => 4 + }, + <<"status">> => 1, + <<"updated_at">> => iot_util:timestamp(), + <<"created_at">> => iot_util:timestamp() + }. + +-spec ensure_table() -> ets:tid(). +ensure_table() -> + case ets:info(?TABLE) of + undefined -> + try ets:new(?TABLE, [named_table, public, set]) of + Tid -> + Tid + catch + error:badarg -> + ?TABLE + end; + _ -> + ?TABLE + end. + +-spec get_state(term(), term()) -> term(). +get_state(Key, Default) -> + _ = ensure_table(), + case ets:lookup(?TABLE, Key) of + [{_, Value}] -> + Value; + [] -> + Default + end. + +-spec put_state(term(), term()) -> ok. +put_state(Key, Value) -> + _ = ensure_table(), + true = ets:insert(?TABLE, {Key, Value}), + ok. diff --git a/src/transport/http/container_handler.erl b/src/transport/http/container_handler.erl index 4ac34a3..4dec572 100644 --- a/src/transport/http/container_handler.erl +++ b/src/transport/http/container_handler.erl @@ -21,13 +21,13 @@ handle_request("GET", "/container/get_all", #{<<"uuid">> := UUID}, _) when is_bi undefined -> {ok, 200, iot_util:json_error(-1, <<"host not found">>)}; Pid when is_pid(Pid) -> - case iot_host:get_containers(Pid) of + case iot_host:get_containers(Pid) of {ok, Ref} -> case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of {ok, Result} -> - {ok, 200, rpc_success_response(Result)}; + {ok, 200, request_success_response(Result)}; {error, Code, Reason} -> - rpc_error_http_response(Code, Reason) + request_error_http_response(Code, Reason) end; {error, Reason} when is_binary(Reason) -> {ok, 200, iot_util:json_error(-1, Reason)} @@ -50,9 +50,9 @@ handle_request("POST", "/container/push_config", _, {ok, Ref} -> case iot_host:await_reply(Pid, Ref, Timeout) of {ok, Result} -> - {ok, 200, rpc_success_response(Result)}; + {ok, 200, request_success_response(Result)}; {error, Code, Reason} -> - rpc_error_http_response(Code, Reason) + request_error_http_response(Code, Reason) end; {error, Reason} when is_binary(Reason) -> {ok, 200, iot_util:json_error(-1, Reason)} @@ -70,9 +70,9 @@ handle_request("POST", "/container/deploy", _, #{<<"uuid">> := UUID, <<"task_id" {ok, Ref} -> case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of {ok, Result} -> - {ok, 200, rpc_success_response(Result)}; + {ok, 200, request_success_response(Result)}; {error, Code, Reason} -> - rpc_error_http_response(Code, Reason) + request_error_http_response(Code, Reason) end; {error, Reason} when is_binary(Reason) -> {ok, 200, iot_util:json_error(400, Reason)} @@ -89,9 +89,9 @@ handle_request("POST", "/container/start", _, #{<<"uuid">> := UUID, <<"container {ok, Ref} -> case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of {ok, Result} -> - {ok, 200, rpc_success_response(Result)}; + {ok, 200, request_success_response(Result)}; {error, Code, Reason} -> - rpc_error_http_response(Code, Reason) + request_error_http_response(Code, Reason) end; {error, Reason} when is_binary(Reason) -> {ok, 200, iot_util:json_error(400, Reason)} @@ -108,9 +108,9 @@ handle_request("POST", "/container/stop", _, #{<<"uuid">> := UUID, <<"container_ {ok, Ref} -> case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of {ok, Result} -> - {ok, 200, rpc_success_response(Result)}; + {ok, 200, request_success_response(Result)}; {error, Code, Reason} -> - rpc_error_http_response(Code, Reason) + request_error_http_response(Code, Reason) end; {error, Reason} when is_binary(Reason) -> {ok, 200, iot_util:json_error(400, Reason)} @@ -126,9 +126,9 @@ handle_request("POST", "/container/kill", _, #{<<"uuid">> := UUID, <<"container_ {ok, Ref} -> case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of {ok, Result} -> - {ok, 200, rpc_success_response(Result)}; + {ok, 200, request_success_response(Result)}; {error, Code, Reason} -> - rpc_error_http_response(Code, Reason) + request_error_http_response(Code, Reason) end; {error, Reason} when is_binary(Reason) -> {ok, 200, iot_util:json_error(400, Reason)} @@ -145,9 +145,9 @@ handle_request("POST", "/container/remove", _, #{<<"uuid">> := UUID, <<"containe {ok, Ref} -> case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of {ok, Result} -> - {ok, 200, rpc_success_response(Result)}; + {ok, 200, request_success_response(Result)}; {error, Code, Reason} -> - rpc_error_http_response(Code, Reason) + request_error_http_response(Code, Reason) end; {error, Reason} when is_binary(Reason) -> {ok, 200, iot_util:json_error(400, Reason)} @@ -158,7 +158,7 @@ handle_request(_, Path, _, _) -> Path1 = list_to_binary(Path), {ok, 200, iot_util:json_error(-1, <<"url: ", Path1/binary, " not found">>)}. -rpc_success_response(Result) when is_binary(Result) -> +request_success_response(Result) when is_binary(Result) -> case decode_json_bytes(Result) of {ok, Data} -> iot_util:json_data(Data); @@ -166,7 +166,7 @@ rpc_success_response(Result) when is_binary(Result) -> iot_util:json_data(Result) end. -rpc_error_response(Code, Reason) when is_integer(Code), is_binary(Reason) -> +request_error_response(Code, Reason) when is_integer(Code), is_binary(Reason) -> case decode_json_bytes(Reason) of {ok, #{<<"message">> := Message}} when is_binary(Message) -> iot_util:json_error(Code, Message); @@ -176,17 +176,17 @@ rpc_error_response(Code, Reason) when is_integer(Code), is_binary(Reason) -> iot_util:json_error(Code, Reason) end. --spec rpc_error_http_response(Code :: integer(), Reason :: binary()) -> +-spec request_error_http_response(Code :: integer(), Reason :: binary()) -> {ok, HttpStatus :: integer(), Body :: iolist()}. -rpc_error_http_response(Code, Reason) when is_integer(Code), is_binary(Reason) -> - {ok, rpc_error_status(Code), rpc_error_response(Code, Reason)}. +request_error_http_response(Code, Reason) when is_integer(Code), is_binary(Reason) -> + {ok, request_error_status(Code), request_error_response(Code, Reason)}. --spec rpc_error_status(Code :: integer()) -> integer(). -rpc_error_status(Code) when is_integer(Code), Code >= 400, Code < 600 -> +-spec request_error_status(Code :: integer()) -> integer(). +request_error_status(Code) when is_integer(Code), Code >= 400, Code < 600 -> Code; -rpc_error_status(-1) -> +request_error_status(-1) -> 504; -rpc_error_status(_) -> +request_error_status(_) -> 400. decode_json_bytes(Data) when is_binary(Data) -> diff --git a/src/transport/tcp/ssl_channel.erl b/src/transport/tcp/ssl_channel.erl index 6ea1bc7..5e1b0b9 100644 --- a/src/transport/tcp/ssl_channel.erl +++ b/src/transport/tcp/ssl_channel.erl @@ -16,7 +16,7 @@ -define(INFLIGHT_TIMEOUT, 60000). %% API --export([pub/4, rpc_call/3, container_call/3, cancel_rpc_call/2, command/3]). +-export([pub/4, container_call/3, cancel_request_call/2, command/3]). -export([start_link/3, stop/2]). %% gen_server callbacks @@ -52,22 +52,15 @@ pub(Pid, Topic, Qos, Content) when is_pid(Pid), is_binary(Topic), is_integer(Qos command(Pid, CommandType, Command) when is_pid(Pid), is_integer(CommandType), is_binary(Command) -> gen_server:cast(Pid, {command, CommandType, Command}). -%% 向通道中写入消息 --spec rpc_call(Pid :: pid(), ReceiverPid :: pid(), Request :: {Method :: binary(), Params :: binary()}) -> Ref :: reference(). -rpc_call(Pid, ReceiverPid, {Method, Params}) when is_pid(Pid), is_pid(ReceiverPid), is_binary(Method), is_binary(Params) -> - Ref = make_ref(), - gen_server:cast(Pid, {unsupported_rpc_call, ReceiverPid, Ref, Method, Params}), - Ref. - -spec container_call(Pid :: pid(), ReceiverPid :: pid(), Request :: message_pb:'ContainerRequest'()) -> Ref :: reference(). container_call(Pid, ReceiverPid, Request) when is_pid(Pid), is_pid(ReceiverPid), is_record(Request, 'ContainerRequest') -> Ref = make_ref(), gen_server:cast(Pid, {request_call, ReceiverPid, Ref, {container_request, Request}}), Ref. --spec cancel_rpc_call(Pid :: pid(), Ref :: reference()) -> ok. -cancel_rpc_call(Pid, Ref) when is_pid(Pid), is_reference(Ref) -> - gen_server:call(Pid, {cancel_rpc_call, Ref}). +-spec cancel_request_call(Pid :: pid(), Ref :: reference()) -> ok. +cancel_request_call(Pid, Ref) when is_pid(Pid), is_reference(Ref) -> + gen_server:call(Pid, {cancel_request_call, Ref}). %% 关闭方法 -spec stop(Pid :: pid(), Reason :: any()) -> no_return(). @@ -91,7 +84,7 @@ init(Ref, Transport, _Opts = []) -> % erlang:start_timer(?PING_TICKER, self(), ping_ticker), gen_server:enter_loop(?MODULE, [], #state{transport = Transport, socket = Socket}). -handle_call({cancel_rpc_call, Ref}, _From, State = #state{inflight = Inflight}) -> +handle_call({cancel_request_call, Ref}, _From, State = #state{inflight = Inflight}) -> case take_inflight_by_ref(Ref, Inflight) of {ok, #inflight_request{timer_ref = TimerRef}, NInflight} -> erlang:cancel_timer(TimerRef), @@ -105,7 +98,7 @@ handle_call(_Request, _From, State) -> %% 发送消息, 基于pub/sub机制 handle_cast({pub, Topic, Qos, Content}, State = #state{transport = Transport, socket = Socket}) -> Encoded = message_pb:encode_msg(#'CastFrame'{ - body = {pub, #'Pub'{topic = Topic, qos = Qos, content = Content}} + body = {pub, #'CastFrame.Pub'{topic = Topic, qos = Qos, content = Content}} }), Transport:send(Socket, <>), {noreply, State}; @@ -113,24 +106,11 @@ handle_cast({pub, Topic, Qos, Content}, State = #state{transport = Transport, so %% 发送Command消息 handle_cast({command, CommandType, Command}, State = #state{transport = Transport, socket = Socket}) -> Encoded = message_pb:encode_msg(#'CastFrame'{ - body = {command, #'Command'{command_type = CommandType, command = Command}} + body = {command, #'CastFrame.Command'{command_type = CommandType, command = Command}} }), Transport:send(Socket, <>), {noreply, State}; -handle_cast({unsupported_rpc_call, ReceiverPid, Ref, Method, _Params}, State) -> - Reply = #'ReplyFrame'{ - packet_id = 0, - reply = {error, #'ReplyError'{code = -1, message = <<"rpc_request is not supported by current message.proto">>}} - }, - case is_pid(ReceiverPid) andalso is_process_alive(ReceiverPid) of - true -> - ReceiverPid ! {rpc_reply, Ref, Reply}; - false -> - logger:warning("[ssl_channel] drop unsupported rpc_call reply because receiver is dead, method: ~p", [Method]) - end, - {noreply, State}; - %% 推送需要响应的请求 handle_cast({request_call, ReceiverPid, Ref, Body}, State = #state{transport = Transport, socket = Socket, packet_id = PacketId, inflight = Inflight}) -> Encoded = message_pb:encode_msg(#'RequestFrame'{ @@ -243,27 +223,24 @@ handle_request_frame(#'RequestFrame'{packet_id = PacketId, case iot_host:attach_channel(HostPid, self()) of ok -> erlang:monitor(process, HostPid), - send_reply_frame(Transport, Socket, PacketId, {result, #'ReplyResult'{data = <<"ok">>}}), + send_reply_frame(Transport, Socket, PacketId, {result, <<"ok">>}), {noreply, State#state{uuid = UUID, host_pid = HostPid}}; {denied, Reason} when is_binary(Reason) -> erlang:monitor(process, HostPid), - send_reply_frame(Transport, Socket, PacketId, {error, #'ReplyError'{code = 1, message = Reason}}), + send_reply_frame(Transport, Socket, PacketId, {error, #'ReplyFrame.Error'{code = 1, message = Reason}}), logger:debug("[ws_channel] uuid: ~p, attach channel get error: ~p, stop channel", [UUID, Reason]), {noreply, State#state{uuid = UUID, host_pid = HostPid}}; {error, Reason} when is_binary(Reason) -> - send_reply_frame(Transport, Socket, PacketId, {error, #'ReplyError'{code = 2, message = Reason}}), + send_reply_frame(Transport, Socket, PacketId, {error, #'ReplyFrame.Error'{code = 2, message = Reason}}), logger:debug("[ws_channel] uuid: ~p, attach channel get error: ~p, stop channel", [UUID, Reason]), {stop, State} end end; false -> - send_reply_frame(Transport, Socket, PacketId, {error, #'ReplyError'{code = 2, message = <<"auth failed">>}}), + send_reply_frame(Transport, Socket, PacketId, {error, #'ReplyFrame.Error'{code = 2, message = <<"auth failed">>}}), logger:warning("[ws_channel] uuid: ~p, user: ~p, auth failed", [UUID, Username]), {stop, State} end; -handle_request_frame(#'RequestFrame'{packet_id = PacketId, body = {rpc_request, RpcRequest}}, _Transport, _Socket, State) -> - logger:warning("[ws_channel] unsupported request message type: rpc_request, packet_id: ~p, request: ~p", [PacketId, RpcRequest]), - {stop, State}; handle_request_frame(#'RequestFrame'{packet_id = PacketId, body = {container_request, ContainerRequest}}, _Transport, _Socket, State) -> logger:warning("[ws_channel] unsupported request message type: container_request, packet_id: ~p, request: ~p", [PacketId, ContainerRequest]), {stop, State}; @@ -276,17 +253,17 @@ handle_request_frame(#'RequestFrame'{packet_id = PacketId, body = undefined}, _T handle_cast_frame(#'CastFrame'{body = {data, Data}}, HostPid, State) when is_pid(HostPid) -> iot_host:handle(HostPid, {data, Data}), {noreply, State}; -handle_cast_frame(#'CastFrame'{body = {event_stream, CastMessage}}, HostPid, State) when is_pid(HostPid) -> +handle_cast_frame(#'CastFrame'{body = {task_event, CastMessage}}, HostPid, State) when is_pid(HostPid) -> handle_event_stream_frame(CastMessage), {noreply, State}; handle_cast_frame(#'CastFrame'{body = Body}, _HostPid, State) -> logger:warning("[ssl_channel] unsupported cast message type: command, body: ~p", [Body]), {noreply, State}. --spec handle_event_stream_frame(message_pb:'TaskEventStream'()) -> any(). -handle_event_stream_frame(#'TaskEventStream'{task_id = TaskId, type = Type0, stream = Reason0}) when Type0 =:= <<"close">> -> +-spec handle_event_stream_frame(message_pb:'CastFrame.TaskEvent'()) -> any(). +handle_event_stream_frame(#'CastFrame.TaskEvent'{task_id = TaskId, type = Type0, stream = Reason0}) when Type0 =:= <<"close">> -> iot_event_stream_observer:stream_close(TaskId, iolist_to_binary(Reason0)); -handle_event_stream_frame(#'TaskEventStream'{task_id = TaskId, type = Type, stream = Stream}) -> +handle_event_stream_frame(#'CastFrame.TaskEvent'{task_id = TaskId, type = Type, stream = Stream}) -> logger:debug("[ssl_channel] get task_id: ~p, type: ~ts, stream: ~ts", [TaskId, Type, Stream]), iot_event_stream_observer:stream_data(TaskId, Type, Stream). @@ -301,7 +278,7 @@ handle_reply_frame(#'ReplyFrame'{packet_id = PacketId, reply = Reply}, Inflight, erlang:cancel_timer(TimerRef), case is_pid(ReceiverPid) andalso is_process_alive(ReceiverPid) of true -> - ReceiverPid ! {rpc_reply, Ref, #'ReplyFrame'{packet_id = PacketId, reply = Reply}}; + ReceiverPid ! {request_reply, Ref, #'ReplyFrame'{packet_id = PacketId, reply = Reply}}; false -> logger:warning("[ws_channel] get reply message: ~p, packet_id: ~p, but receiver_pid is deaded", [Reply, PacketId]) end,