Packages
kvs
2.1.0
13.5.22-aleph
13.4.16
13.4.15
13.4.14
13.4.13
13.3.1
13.2.28
11.9.1
10.8.3
10.8.2
10.3.0
9.9.2
9.9.1
9.9.0
9.8.0
9.7.0
9.4.8
9.4.7
9.4.6
9.4.5
9.4.4
9.4.3
9.4.2
9.4.1
9.4.0
8.12.0
8.11.2
8.11.1
8.10.4
8.10.3
8.10.2
8.10.1
8.10.0
8.5.2
8.5.1
8.5.0
8.4.1
8.4.0
8.3.1
8.3.0
7.11.5
7.9.1
7.7.0
7.1.3
7.1.2
7.1.1
6.12.11
6.12.10
6.12.9
6.12.8
6.12.7
6.12.6
6.12.5
6.12.4
6.12.3
6.12.2
6.12.1
6.12.0
6.11.2
6.11.1
6.11.0
6.10.2
6.10.1
6.10.0
6.9.2
6.9.1
6.9.0
6.7.7
6.7.6
6.7.5
6.7.4
6.7.3
6.7.2
6.7.1
6.7.0
6.6.0
2.1.0
0.12.1
retired
KVS Key-Value Store Abstraction Layer
Current section
Files
Jump to
Current section
Files
src/kvs_subscription.erl
-module(kvs_subscription).
-copyright('Synrc Research Center s.r.o.').
-include("subscription.hrl").
-include("user.hrl").
-include("metainfo.hrl").
-compile(export_all).
metainfo() ->
#schema{name=kvs,tables=[
#table{name=subscription,fields=record_info(fields,subscription),keys=[whom,who]},
#table{name=id_seq,fields=record_info(fields,id_seq),keys=[thing]}
]}.
subscribe(Who, Whom) -> kvs:put(#subscription{key={Who,Whom},who = Who, whom = Whom}).
unsubscribe(Who, Whom) ->
case subscribed(Who, Whom) of
true -> kvs:delete(subscription, {Who, Whom});
false -> skip end.
subscriptions(#user{username = UId}) -> subscriptions(UId);
subscriptions(UId) -> kvs:index(subscription, who, UId).
subscribed(Who) -> kvs:index(subscription, whom, Who).
subscribed(Who, Whom) ->
case kvs:get(subscription, {Who, Whom}) of
{ok, _} -> true;
_ -> false end.