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 ->
StateData#state.nicks
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{users = Users, nicks = Nicks,
last_voice_request_time = LastTimes}.
@ -3850,15 +3850,15 @@ extract_jid_from_voice_approvement(Els) ->
end, {error, jid_not_found}, Els).
last_voice_request_time(BareJID, StateData) ->
case ?DICT:find(BareJID, StateData#state.last_voice_request_time) of
{ok, Value} ->
case treap:lookup(BareJID, StateData#state.last_voice_request_time) of
{ok, _, Value} ->
Value;
error ->
{0, 0, 0}
end.
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}.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View File

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