24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-02 21:17:12 +02:00

Use treap for keeping last voice request timestamps

This commit is contained in:
Maxim Ignatenko 2011-09-21 10:25:32 +03:00
parent 0c261fb903
commit 499b884c67
2 changed files with 5 additions and 5 deletions

View File

@ -1548,7 +1548,7 @@ remove_online_user(JID, StateData, Reason) ->
error -> error ->
StateData#state.nicks StateData#state.nicks
end, end,
LastTimes = ?DICT:erase(jlib:jid_remove_resource(LJID), LastTimes = treap:delete(jlib:jid_remove_resource(LJID),
StateData#state.last_voice_request_time), StateData#state.last_voice_request_time),
StateData#state{users = Users, nicks = Nicks, StateData#state{users = Users, nicks = Nicks,
last_voice_request_time = LastTimes}. last_voice_request_time = LastTimes}.
@ -3850,15 +3850,15 @@ extract_jid_from_voice_approvement(Els) ->
end, {error, jid_not_found}, Els). end, {error, jid_not_found}, Els).
last_voice_request_time(BareJID, StateData) -> last_voice_request_time(BareJID, StateData) ->
case ?DICT:find(BareJID, StateData#state.last_voice_request_time) of case treap:lookup(BareJID, StateData#state.last_voice_request_time) of
{ok, Value} -> {ok, _, Value} ->
Value; Value;
error -> error ->
{0, 0, 0} {0, 0, 0}
end. end.
update_voice_request_time(BareJID, StateData) -> update_voice_request_time(BareJID, StateData) ->
NewDict = ?DICT:store(BareJID, erlang:now(), StateData#state.last_voice_request_time), NewDict = treap:insert(BareJID, {0, 0}, erlang:now(), StateData#state.last_voice_request_time),
StateData#state{last_voice_request_time = NewDict}. StateData#state{last_voice_request_time = NewDict}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View File

@ -71,7 +71,7 @@
jid, jid,
config = #config{}, config = #config{},
users = ?DICT:new(), users = ?DICT:new(),
last_voice_request_time = ?DICT:new(), last_voice_request_time = treap:empty(),
robots = ?DICT:new(), robots = ?DICT:new(),
nicks = ?DICT:new(), nicks = ?DICT:new(),
affiliations = ?DICT:new(), affiliations = ?DICT:new(),