aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2014-07-17 08:31:54 +0400
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2014-07-17 08:32:13 +0400
commit568068c79f3a0b1f58dc989719984f7227a3636d (patch)
tree75f3f125c66e0f07487298cb6ffc62057ba829c6 /src
parentChange return type to reflect recent changes in p1_sip (diff)
Get rid of p1_mnesia file
Diffstat (limited to 'src')
-rw-r--r--src/mod_offline.erl34
-rw-r--r--src/p1_mnesia.erl49
2 files changed, 28 insertions, 55 deletions
diff --git a/src/mod_offline.erl b/src/mod_offline.erl
index d81022fdd..f6870adc0 100644
--- a/src/mod_offline.erl
+++ b/src/mod_offline.erl
@@ -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{}}.
diff --git a/src/p1_mnesia.erl b/src/p1_mnesia.erl
deleted file mode 100644
index b792472a6..000000000
--- a/src/p1_mnesia.erl
+++ /dev/null
@@ -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.