This commit is contained in:
Feng 2016-08-27 15:44:22 +08:00
parent bf28580e65
commit dbed5b914a
2 changed files with 24 additions and 2 deletions

View File

@ -29,7 +29,7 @@
%% @end %% @end
-module(emqttd_guid). -module(emqttd_guid).
-export([gen/0, new/0, timestamp/1]). -export([gen/0, new/0, timestamp/1, to_hexstr/1, from_hexstr/1, to_base62/1, from_base62/1]).
-define(MAX_SEQ, 16#FFFF). -define(MAX_SEQ, 16#FFFF).
@ -120,3 +120,15 @@ npid() ->
PidByte3:8, PidByte4:8>>, PidByte3:8, PidByte4:8>>,
NPid. NPid.
to_hexstr(<<I:128>>) ->
list_to_binary(integer_to_list(I, 16)).
from_hexstr(S) ->
I = list_to_integer(binary_to_list(S), 16), <<I:128>>.
to_base62(<<I:128>>) ->
emqttd_base62:encode(I).
from_base62(S) ->
I = emqttd_base62:decode(S), <<I:128>>.

View File

@ -16,6 +16,8 @@
-module(emqttd_lib_SUITE). -module(emqttd_lib_SUITE).
-include_lib("eunit/include/eunit.hrl").
-compile(export_all). -compile(export_all).
-define(SOCKOPTS, [ -define(SOCKOPTS, [
@ -35,7 +37,7 @@ all() -> [{group, guid}, {group, opts},
{group, node}, {group, base62}]. {group, node}, {group, base62}].
groups() -> groups() ->
[{guid, [], [guid_gen]}, [{guid, [], [guid_gen, guid_hexstr, guid_base62]},
{opts, [], [opts_merge]}, {opts, [], [opts_merge]},
{?PQ, [], [priority_queue_plen, {?PQ, [], [priority_queue_plen,
priority_queue_out2]}, priority_queue_out2]},
@ -56,6 +58,14 @@ guid_gen(_) ->
Ts2 = emqttd_guid:timestamp(emqttd_guid:gen()), Ts2 = emqttd_guid:timestamp(emqttd_guid:gen()),
true = Ts2 > Ts1. true = Ts2 > Ts1.
guid_hexstr(_) ->
Guid = emqttd_guid:gen(),
?assertEqual(Guid, emqttd_guid:from_hexstr(emqttd_guid:to_hexstr(Guid))).
guid_base62(_) ->
Guid = emqttd_guid:gen(),
?assertEqual(Guid, emqttd_guid:from_base62(emqttd_guid:to_base62(Guid))).
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% emqttd_opts %% emqttd_opts
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------