Procházet zdrojové kódy

refactor(emqx): add 'extra' field to message record

Zaiming Shi před 4 roky
rodič
revize
5274e0a726

+ 3 - 1
apps/emqx/include/emqx.hrl

@@ -71,7 +71,9 @@
           %% Message Payload
           payload :: emqx_types:payload(),
           %% Timestamp (Unit: millisecond)
-          timestamp :: integer()
+          timestamp :: integer(),
+          %% not used so far, for future extension
+          extra = [] :: term()
          }).
 
 -record(delivery, {

+ 4 - 2
apps/emqx/src/emqx_message.erl

@@ -292,7 +292,8 @@ to_map(#message{
           headers = Headers,
           topic = Topic,
           payload = Payload,
-          timestamp = Timestamp
+          timestamp = Timestamp,
+          extra = Extra
         }) ->
     #{id => Id,
       qos => QoS,
@@ -301,7 +302,8 @@ to_map(#message{
       headers => Headers,
       topic => Topic,
       payload => Payload,
-      timestamp => Timestamp
+      timestamp => Timestamp,
+      extra => Extra
      }.
 
 %% @doc Message to tuple list

+ 6 - 2
apps/emqx/test/emqx_message_SUITE.erl

@@ -206,7 +206,9 @@ t_to_map(_) ->
             {headers, #{}},
             {topic, <<"topic">>},
             {payload, <<"payload">>},
-            {timestamp, emqx_message:timestamp(Msg)}],
+            {timestamp, emqx_message:timestamp(Msg)},
+            {extra, []}
+           ],
     ?assertEqual(List, emqx_message:to_list(Msg)),
     ?assertEqual(maps:from_list(List), emqx_message:to_map(Msg)).
 
@@ -219,6 +221,8 @@ t_from_map(_) ->
             headers => #{},
             topic => <<"topic">>,
             payload => <<"payload">>,
-            timestamp => emqx_message:timestamp(Msg)},
+            timestamp => emqx_message:timestamp(Msg),
+            extra => []
+           },
     ?assertEqual(Map, emqx_message:to_map(Msg)),
     ?assertEqual(Msg, emqx_message:from_map(emqx_message:to_map(Msg))).