From c091e89796fe075000e0a2b1807b1cf5193835ef Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Tue, 23 Jul 2019 10:56:14 +0800 Subject: [PATCH 1/2] Remove the unnecessary include/emqx_client.hrl --- include/emqx_client.hrl | 21 --------------------- src/emqx_client.erl | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 23 deletions(-) delete mode 100644 include/emqx_client.hrl diff --git a/include/emqx_client.hrl b/include/emqx_client.hrl deleted file mode 100644 index bf2f49283..000000000 --- a/include/emqx_client.hrl +++ /dev/null @@ -1,21 +0,0 @@ -%% Copyright (c) 2013-2019 EMQ Technologies Co., Ltd. All Rights Reserved. -%% -%% Licensed under the Apache License, Version 2.0 (the "License"); -%% you may not use this file except in compliance with the License. -%% You may obtain a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, software -%% distributed under the License is distributed on an "AS IS" BASIS, -%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -%% See the License for the specific language governing permissions and -%% limitations under the License. - - --ifndef(EMQX_CLIENT_HRL). --define(EMQX_CLIENT_HRL, true). --include("emqx_mqtt.hrl"). --record(mqtt_msg, {qos = ?QOS_0, retain = false, dup = false, - packet_id, topic, props, payload}). --endif. diff --git a/src/emqx_client.erl b/src/emqx_client.erl index 41ff2f72e..2125006a9 100644 --- a/src/emqx_client.erl +++ b/src/emqx_client.erl @@ -20,7 +20,7 @@ -include("logger.hrl"). -include("types.hrl"). --include("emqx_client.hrl"). +-include("emqx_mqtt.hrl"). -logger_header("[Client]"). @@ -144,7 +144,17 @@ | {force_ping, boolean()} | {properties, properties()}). --type(mqtt_msg() :: #mqtt_msg{}). +-record(mqtt_msg, { + qos = ?QOS_0, + retain = false, + dup = false, + packet_id, + topic, + props, + payload + }). + +-opaque(mqtt_msg() :: #mqtt_msg{}). -record(state, {name :: atom(), owner :: pid(), From 0cdb0d55915d126486dcd75fe1bab084d2f1f672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E5=AD=90=E5=8D=9A?= <349832309@qq.com> Date: Fri, 2 Aug 2019 10:20:09 +0800 Subject: [PATCH 2/2] Remove all dependencies on emqx_client.hrl --- test/emqx_request_handler.erl | 13 +++---------- test/emqx_request_sender.erl | 9 +-------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/test/emqx_request_handler.erl b/test/emqx_request_handler.erl index d80288023..b936d8406 100644 --- a/test/emqx_request_handler.erl +++ b/test/emqx_request_handler.erl @@ -23,8 +23,6 @@ -export([start_link/4, stop/1]). --include("emqx_client.hrl"). - -type qos() :: emqx_mqtt_types:qos_name() | emqx_mqtt_types:qos(). -type topic() :: emqx_topic:topic(). -type handler() :: fun((CorrData :: binary(), ReqPayload :: binary()) -> RspPayload :: binary()). @@ -65,26 +63,21 @@ handle_msg(ReqMsg, RequestHandler, Parent) -> CorrData = maps:get('Correlation-Data', Props), RspProps = maps:without(['Response-Topic'], Props), RspPayload = RequestHandler(CorrData, ReqPayload), - RspMsg = #mqtt_msg{qos = QoS, - topic = RspTopic, - props = RspProps, - payload = RspPayload - }, emqx_logger:debug("~p sending response msg to topic ~s with~n" "corr-data=~p~npayload=~p", [?MODULE, RspTopic, CorrData, RspPayload]), - ok = send_response(RspMsg); + ok = send_response(RspTopic, RspProps, RspPayload, QoS); _ -> Parent ! {discarded, ReqPayload}, ok end. -send_response(Msg) -> +send_response(Topic, Properties, Payload, QoS) -> %% This function is evaluated by emqx_client itself. %% hence delegate to another temp process for the loopback gen_statem call. Client = self(), _ = spawn_link(fun() -> - case emqx_client:publish(Client, Msg) of + case emqx_client:publish(Client, Topic, Properties, Payload, [{qos, QoS}]) of ok -> ok; {ok, _} -> ok; {error, Reason} -> exit({failed_to_publish_response, Reason}) diff --git a/test/emqx_request_sender.erl b/test/emqx_request_sender.erl index e01db96c0..6cf3cd3a7 100644 --- a/test/emqx_request_sender.erl +++ b/test/emqx_request_sender.erl @@ -22,8 +22,6 @@ -export([start_link/3, stop/1, send/6]). --include("emqx_client.hrl"). - start_link(ResponseTopic, QoS, Options0) -> Parent = self(), MsgHandler = make_msg_handler(Parent), @@ -48,12 +46,7 @@ send(Client, ReqTopic, RspTopic, CorrData, Payload, QoS) -> Props = #{'Response-Topic' => RspTopic, 'Correlation-Data' => CorrData }, - Msg = #mqtt_msg{qos = QoS, - topic = ReqTopic, - props = Props, - payload = Payload - }, - case emqx_client:publish(Client, Msg) of + case emqx_client:publish(Client, ReqTopic, Props, Payload, [{qos, QoS}]) of ok -> ok; %% QoS = 0 {ok, _} -> ok; {error, _} = E -> E