mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-28 16:34:13 +01:00
Get rid of p1_mnesia file
This commit is contained in:
parent
b5c4fe6626
commit
568068c79f
@ -123,10 +123,7 @@ store_offline_msg(_Host, US, Msgs, Len, MaxOfflineMsgs,
|
||||
mnesia) ->
|
||||
F = fun () ->
|
||||
Count = if MaxOfflineMsgs =/= infinity ->
|
||||
Len +
|
||||
p1_mnesia:count_records(offline_msg,
|
||||
#offline_msg{us = US,
|
||||
_ = '_'});
|
||||
Len + count_mnesia_records(US);
|
||||
true -> 0
|
||||
end,
|
||||
if Count > MaxOfflineMsgs -> discard_warn_sender(Msgs);
|
||||
@ -986,8 +983,7 @@ count_offline_messages(User, Server) ->
|
||||
count_offline_messages(LUser, LServer, mnesia) ->
|
||||
US = {LUser, LServer},
|
||||
F = fun () ->
|
||||
p1_mnesia:count_records(offline_msg,
|
||||
#offline_msg{us = US, _ = '_'})
|
||||
count_mnesia_records(US)
|
||||
end,
|
||||
case catch mnesia:async_dirty(F) of
|
||||
I when is_integer(I) -> I;
|
||||
@ -1016,6 +1012,32 @@ count_offline_messages(_Acc, User, Server) ->
|
||||
N = count_offline_messages(User, Server),
|
||||
{stop, N}.
|
||||
|
||||
%% Return the number of records matching a given match expression.
|
||||
%% This function is intended to be used inside a Mnesia transaction.
|
||||
%% The count has been written to use the fewest possible memory by
|
||||
%% getting the record by small increment and by using continuation.
|
||||
-define(BATCHSIZE, 100).
|
||||
|
||||
count_mnesia_records(US) ->
|
||||
MatchExpression = #offline_msg{us = US, _ = '_'},
|
||||
case mnesia:select(offline_msg, [{MatchExpression, [], [[]]}],
|
||||
?BATCHSIZE, read) of
|
||||
{Result, Cont} ->
|
||||
Count = length(Result),
|
||||
count_records_cont(Cont, Count);
|
||||
'$end_of_table' ->
|
||||
0
|
||||
end.
|
||||
|
||||
count_records_cont(Cont, Count) ->
|
||||
case mnesia:select(Cont) of
|
||||
{Result, Cont} ->
|
||||
NewCount = Count + length(Result),
|
||||
count_records_cont(Cont, NewCount);
|
||||
'$end_of_table' ->
|
||||
Count
|
||||
end.
|
||||
|
||||
offline_msg_schema() ->
|
||||
{record_info(fields, offline_msg), #offline_msg{}}.
|
||||
|
||||
|
@ -1,49 +0,0 @@
|
||||
%%% ====================================================================
|
||||
%%% ``The contents of this file are subject to the Erlang Public License,
|
||||
%%% Version 1.1, (the "License"); you may not use this file except in
|
||||
%%% compliance with the License. You should have received a copy of the
|
||||
%%% Erlang Public License along with this software. If not, it can be
|
||||
%%% retrieved via the world wide web at http://www.erlang.org/.
|
||||
%%%
|
||||
%%%
|
||||
%%% Software distributed under the License is distributed on an "AS IS"
|
||||
%%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
||||
%%% the License for the specific language governing rights and limitations
|
||||
%%% under the License.
|
||||
%%%
|
||||
%%%
|
||||
%%% The Initial Developer of the Original Code is ProcessOne.
|
||||
%%% Portions created by ProcessOne are Copyright 2006-2014, ProcessOne
|
||||
%%% All Rights Reserved.''
|
||||
%%%
|
||||
%%% This software is copyright 2006-2014, ProcessOne.
|
||||
|
||||
-module(p1_mnesia).
|
||||
|
||||
-author('mickael.remond@process-one.net').
|
||||
|
||||
-export([count_records/2]).
|
||||
|
||||
%% Return the number of records matching a given match expression.
|
||||
%% This function is intended to be used inside a Mnesia transaction.
|
||||
%% The count has been written to use the fewest possible memory by
|
||||
%% getting the record by small increment and by using continuation.
|
||||
-define(BATCHSIZE, 100).
|
||||
|
||||
count_records(Tab, MatchExpression) ->
|
||||
case mnesia:select(Tab, [{MatchExpression, [], [[]]}],
|
||||
?BATCHSIZE, read)
|
||||
of
|
||||
{Result, Cont} ->
|
||||
Count = length(Result),
|
||||
count_records_cont(Cont, Count);
|
||||
'$end_of_table' -> 0
|
||||
end.
|
||||
|
||||
count_records_cont(Cont, Count) ->
|
||||
case mnesia:select(Cont) of
|
||||
{Result, Cont} ->
|
||||
NewCount = Count + length(Result),
|
||||
count_records_cont(Cont, NewCount);
|
||||
'$end_of_table' -> Count
|
||||
end.
|
Loading…
Reference in New Issue
Block a user