summaryrefslogtreecommitdiff
path: root/src/mod_shared_roster_opt.erl
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2020-03-17 14:35:43 +0100
committerPaweł Chmielowski <pchmielowski@process-one.net>2020-03-17 14:35:43 +0100
commitd8899ca9acc7e2b198d1c03f9534ca46b4f524b2 (patch)
tree5e88d10009b5b5b5d528577c8ac04e4234c61f75 /src/mod_shared_roster_opt.erl
parentFix issue with family field on cockroachdb (diff)
Add cache to mod_shared_roster
This should help with excessive queries that sql backend generates Should fix issue #3158.
Diffstat (limited to 'src/mod_shared_roster_opt.erl')
-rw-r--r--src/mod_shared_roster_opt.erl28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/mod_shared_roster_opt.erl b/src/mod_shared_roster_opt.erl
index d0d2aaac..825196e2 100644
--- a/src/mod_shared_roster_opt.erl
+++ b/src/mod_shared_roster_opt.erl
@@ -3,7 +3,29 @@
-module(mod_shared_roster_opt).
+-export([cache_life_time/1]).
+-export([cache_missed/1]).
+-export([cache_size/1]).
-export([db_type/1]).
+-export([use_cache/1]).
+
+-spec cache_life_time(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
+cache_life_time(Opts) when is_map(Opts) ->
+ gen_mod:get_opt(cache_life_time, Opts);
+cache_life_time(Host) ->
+ gen_mod:get_module_opt(Host, mod_shared_roster, cache_life_time).
+
+-spec cache_missed(gen_mod:opts() | global | binary()) -> boolean().
+cache_missed(Opts) when is_map(Opts) ->
+ gen_mod:get_opt(cache_missed, Opts);
+cache_missed(Host) ->
+ gen_mod:get_module_opt(Host, mod_shared_roster, cache_missed).
+
+-spec cache_size(gen_mod:opts() | global | binary()) -> 'infinity' | pos_integer().
+cache_size(Opts) when is_map(Opts) ->
+ gen_mod:get_opt(cache_size, Opts);
+cache_size(Host) ->
+ gen_mod:get_module_opt(Host, mod_shared_roster, cache_size).
-spec db_type(gen_mod:opts() | global | binary()) -> atom().
db_type(Opts) when is_map(Opts) ->
@@ -11,3 +33,9 @@ db_type(Opts) when is_map(Opts) ->
db_type(Host) ->
gen_mod:get_module_opt(Host, mod_shared_roster, db_type).
+-spec use_cache(gen_mod:opts() | global | binary()) -> boolean().
+use_cache(Opts) when is_map(Opts) ->
+ gen_mod:get_opt(use_cache, Opts);
+use_cache(Host) ->
+ gen_mod:get_module_opt(Host, mod_shared_roster, use_cache).
+