summaryrefslogtreecommitdiff
path: root/src/mod_pubsub
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_pubsub')
-rw-r--r--src/mod_pubsub/mod_pubsub.erl126
-rw-r--r--src/mod_pubsub/node.template56
-rw-r--r--src/mod_pubsub/node_buddy.erl60
-rw-r--r--src/mod_pubsub/node_club.erl58
-rw-r--r--src/mod_pubsub/node_dispatch.erl36
-rw-r--r--src/mod_pubsub/node_flat.erl58
-rw-r--r--src/mod_pubsub/node_hometree.erl (renamed from src/mod_pubsub/node_default.erl)2
-rw-r--r--src/mod_pubsub/node_mb.erl10
-rw-r--r--src/mod_pubsub/node_pep.erl50
-rw-r--r--src/mod_pubsub/node_private.erl62
-rw-r--r--src/mod_pubsub/node_public.erl62
-rw-r--r--src/mod_pubsub/nodetree_tree.erl (renamed from src/mod_pubsub/nodetree_default.erl)2
12 files changed, 332 insertions, 250 deletions
diff --git a/src/mod_pubsub/mod_pubsub.erl b/src/mod_pubsub/mod_pubsub.erl
index 3f4306a9..d267eabd 100644
--- a/src/mod_pubsub/mod_pubsub.erl
+++ b/src/mod_pubsub/mod_pubsub.erl
@@ -39,7 +39,7 @@
-module(mod_pubsub).
-author('christophe.romain@process-one.net').
--version('1.12-05').
+-version('1.12-06').
-behaviour(gen_server).
-behaviour(gen_mod).
@@ -48,8 +48,8 @@
-include("jlib.hrl").
-include("pubsub.hrl").
--define(STDTREE, "default").
--define(STDNODE, "default").
+-define(STDTREE, "tree").
+-define(STDNODE, "flat").
-define(PEPNODE, "pep").
%% exports for hooks
@@ -77,6 +77,9 @@
publish_item/6,
delete_item/4,
send_items/6,
+ get_items/2,
+ get_item/3,
+ get_cached_item/2,
broadcast_stanza/7,
get_configure/5,
set_configure/5,
@@ -119,7 +122,8 @@
host,
access,
pep_mapping = [],
- pep_sendlast_offline,
+ pep_sendlast_offline = false,
+ last_item_cache = false,
nodetree = ?STDTREE,
plugins = [?STDNODE],
send_loop}).
@@ -164,16 +168,20 @@ init([ServerHost, Opts]) ->
Access = gen_mod:get_opt(access_createnode, Opts, all),
PepOffline = gen_mod:get_opt(pep_sendlast_offline, Opts, false),
IQDisc = gen_mod:get_opt(iqdisc, Opts, one_queue),
+ LastItemCache = gen_mod:get_opt(last_item_cache, Opts, false),
pubsub_index:init(Host, ServerHost, Opts),
- ets:new(gen_mod:get_module_proc(Host, pubsub_state), [set, named_table]),
- ets:new(gen_mod:get_module_proc(ServerHost, pubsub_state), [set, named_table]),
+ ets:new(gen_mod:get_module_proc(Host, config), [set, named_table]),
+ ets:new(gen_mod:get_module_proc(ServerHost, config), [set, named_table]),
+ ets:new(gen_mod:get_module_proc(Host, last_items), [set, named_table]),
+ ets:new(gen_mod:get_module_proc(ServerHost, last_items), [set, named_table]),
{Plugins, NodeTree, PepMapping} = init_plugins(Host, ServerHost, Opts),
mod_disco:register_feature(ServerHost, ?NS_PUBSUB),
- ets:insert(gen_mod:get_module_proc(Host, pubsub_state), {nodetree, NodeTree}),
- ets:insert(gen_mod:get_module_proc(Host, pubsub_state), {plugins, Plugins}),
- ets:insert(gen_mod:get_module_proc(ServerHost, pubsub_state), {nodetree, NodeTree}),
- ets:insert(gen_mod:get_module_proc(ServerHost, pubsub_state), {plugins, Plugins}),
- ets:insert(gen_mod:get_module_proc(ServerHost, pubsub_state), {pep_mapping, PepMapping}),
+ ets:insert(gen_mod:get_module_proc(Host, config), {nodetree, NodeTree}),
+ ets:insert(gen_mod:get_module_proc(Host, config), {plugins, Plugins}),
+ ets:insert(gen_mod:get_module_proc(Host, config), {last_item_cache, LastItemCache}),
+ ets:insert(gen_mod:get_module_proc(ServerHost, config), {nodetree, NodeTree}),
+ ets:insert(gen_mod:get_module_proc(ServerHost, config), {plugins, Plugins}),
+ ets:insert(gen_mod:get_module_proc(ServerHost, config), {pep_mapping, PepMapping}),
ejabberd_hooks:add(disco_sm_identity, ServerHost, ?MODULE, disco_sm_identity, 75),
ejabberd_hooks:add(disco_sm_features, ServerHost, ?MODULE, disco_sm_features, 75),
ejabberd_hooks:add(disco_sm_items, ServerHost, ?MODULE, disco_sm_items, 75),
@@ -202,6 +210,7 @@ init([ServerHost, Opts]) ->
access = Access,
pep_mapping = PepMapping,
pep_sendlast_offline = PepOffline,
+ last_item_cache = LastItemCache,
nodetree = NodeTree,
plugins = Plugins},
SendLoop = spawn(?MODULE, send_loop, [State]),
@@ -633,8 +642,8 @@ out_subscription(User, Server, JID, subscribed) ->
gen_server:cast(Proc, {presence, PUser, PServer, PResources, Owner});
out_subscription(_,_,_,_) ->
ok.
-in_subscription(_, User, Server, Subscriber, unsubscribed, _) ->
- Owner = jlib:make_jid(User, Server, ""),
+in_subscription(_, User, Server, Owner, unsubscribed, _) ->
+ Subscriber = jlib:make_jid(User, Server, ""),
Proc = gen_mod:get_module_proc(Server, ?PROCNAME),
gen_server:cast(Proc, {unsubscribe, Subscriber, Owner});
in_subscription(_, _, _, _, _, _) ->
@@ -1527,7 +1536,8 @@ delete_node(Host, Node, Owner) ->
NodeId = RNode#pubsub_node.id,
Type = RNode#pubsub_node.type,
Options = RNode#pubsub_node.options,
- broadcast_removed_node(RH, RN, NodeId, Type, Options, RSubscriptions)
+ broadcast_removed_node(RH, RN, NodeId, Type, Options, RSubscriptions),
+ unset_cached_item(RH, NodeId)
end, Removed),
case Result of
default -> {result, Reply};
@@ -1745,6 +1755,7 @@ publish_item(Host, ServerHost, Node, Publisher, ItemId, Payload) ->
Type = TNode#pubsub_node.type,
Options = TNode#pubsub_node.options,
broadcast_publish_item(Host, Node, NodeId, Type, Options, Removed, ItemId, jlib:jid_tolower(Publisher), Payload),
+ set_cached_item(Host, NodeId, ItemId, Payload),
case Result of
default -> {result, Reply};
_ -> {result, Result}
@@ -1754,12 +1765,14 @@ publish_item(Host, ServerHost, Node, Publisher, ItemId, Payload) ->
Type = TNode#pubsub_node.type,
Options = TNode#pubsub_node.options,
broadcast_retract_items(Host, Node, NodeId, Type, Options, Removed),
+ set_cached_item(Host, NodeId, ItemId, Payload),
{result, Reply};
{result, {TNode, {Result, Removed}}} ->
NodeId = TNode#pubsub_node.id,
Type = TNode#pubsub_node.type,
Options = TNode#pubsub_node.options,
broadcast_retract_items(Host, Node, NodeId, Type, Options, Removed),
+ set_cached_item(Host, NodeId, ItemId, Payload),
{result, Result};
{result, {_, default}} ->
{result, Reply};
@@ -1831,6 +1844,10 @@ delete_item(Host, Node, Publisher, ItemId, ForceNotify) ->
Type = TNode#pubsub_node.type,
Options = TNode#pubsub_node.options,
broadcast_retract_items(Host, Node, NodeId, Type, Options, [ItemId], ForceNotify),
+ case get_cached_item(Host, NodeId) of
+ #pubsub_item{itemid = {ItemId, NodeId}, _ = '_'} -> unset_cached_item(Host, NodeId);
+ _ -> ok
+ end,
case Result of
default -> {result, Reply};
_ -> {result, Result}
@@ -1884,6 +1901,7 @@ purge_node(Host, Node, Owner) ->
Type = TNode#pubsub_node.type,
Options = TNode#pubsub_node.options,
broadcast_purge_node(Host, Node, NodeId, Type, Options),
+ unset_cached_item(Host, NodeId),
case Result of
default -> {result, Reply};
_ -> {result, Result}
@@ -1962,6 +1980,22 @@ get_items(Host, Node, From, SubId, SMaxItems, ItemIDs) ->
Error
end
end.
+get_items(Host, Node) ->
+ Action = fun(#pubsub_node{type = Type, id = NodeId}) ->
+ node_call(Type, get_items, [NodeId, service_jid(Host)])
+ end,
+ case transaction(Host, Node, Action, sync_dirty) of
+ {result, {_, Items}} -> Items;
+ Error -> Error
+ end.
+get_item(Host, Node, ItemId) ->
+ Action = fun(#pubsub_node{type = Type, id = NodeId}) ->
+ node_call(Type, get_item, [NodeId, ItemId])
+ end,
+ case transaction(Host, Node, Action, sync_dirty) of
+ {result, {_, Items}} -> Items;
+ Error -> Error
+ end.
%% @spec (Host, Node, NodeId, Type LJID, Number) -> any()
%% Host = pubsubHost()
@@ -1973,7 +2007,15 @@ get_items(Host, Node, From, SubId, SMaxItems, ItemIDs) ->
%% @doc <p>Resend the items of a node to the user.</p>
%% @todo use cache-last-item feature
send_items(Host, Node, NodeId, Type, LJID, last) ->
- send_items(Host, Node, NodeId, Type, LJID, 1);
+ case get_cached_item(Host, NodeId) of
+ undefined ->
+ send_items(Host, Node, NodeId, Type, LJID, 1);
+ LastItem ->
+ Stanza = event_stanza(
+ [{xmlelement, "items", nodeAttr(Node),
+ itemsEls([LastItem])}]),
+ ejabberd_router ! {route, service_jid(Host), jlib:make_jid(LJID), Stanza}
+ end;
send_items(Host, Node, NodeId, Type, LJID, Number) ->
ToSend = case node_action(Host, Type, get_items, [NodeId, LJID]) of
{result, []} ->
@@ -2894,23 +2936,63 @@ set_xoption([_ | Opts], NewOpts) ->
% skip unknown field
set_xoption(Opts, NewOpts).
+%%%% last item cache handling
+
+set_cached_item({_, ServerHost, _}, NodeId, ItemId, Payload) ->
+ set_cached_item(ServerHost, NodeId, ItemId, Payload);
+set_cached_item(Host, NodeId, ItemId, Payload) ->
+ case ets:lookup(gen_mod:get_module_proc(Host, config), last_item_cache) of
+ [{last_item_cache, true}] ->
+ ets:insert(gen_mod:get_module_proc(Host, last_items), {NodeId, {ItemId, Payload}});
+ _ ->
+ ok
+ end.
+unset_cached_item({_, ServerHost, _}, NodeId) ->
+ unset_cached_item(ServerHost, NodeId);
+unset_cached_item(Host, NodeId) ->
+ case ets:lookup(gen_mod:get_module_proc(Host, config), last_item_cache) of
+ [{last_item_cache, true}] ->
+ ets:delete(gen_mod:get_module_proc(Host, last_items), NodeId);
+ _ ->
+ ok
+ end.
+get_cached_item({_, ServerHost, _}, NodeId) ->
+ get_cached_item(ServerHost, NodeId);
+get_cached_item(Host, NodeId) ->
+ case ets:lookup(gen_mod:get_module_proc(Host, config), last_item_cache) of
+ [{last_item_cache, true}] ->
+ case ets:lookup(gen_mod:get_module_proc(Host, last_items), NodeId) of
+ [{NodeId, {ItemId, Payload}}] ->
+ #pubsub_item{itemid = {ItemId, NodeId}, payload = Payload};
+ _ ->
+ undefined
+ end;
+ _ ->
+ undefined
+ end.
+
%%%% plugin handling
plugins(Host) ->
- case ets:lookup(gen_mod:get_module_proc(Host, pubsub_state), plugins) of
+ case ets:lookup(gen_mod:get_module_proc(Host, config), plugins) of
+ [{plugins, []}] -> [?STDNODE];
[{plugins, PL}] -> PL;
_ -> [?STDNODE]
end.
select_type(ServerHost, Host, Node, Type)->
- ?DEBUG("SELECT_TYPE : ~p~n", [[ServerHost, Host, Node, Type]]),
- case Host of
+ SelectedType = case Host of
{_User, _Server, _Resource} ->
- case ets:lookup(gen_mod:get_module_proc(ServerHost, pubsub_state), pep_mapping) of
- [{pep_mapping, PM}] -> ?DEBUG("SELECT_TYPE : ~p~n", [PM]), proplists:get_value(Node, PM, ?PEPNODE);
- R -> ?DEBUG("SELECT_TYPE why ?: ~p~n", [R]), ?PEPNODE
+ case ets:lookup(gen_mod:get_module_proc(ServerHost, config), pep_mapping) of
+ [{pep_mapping, PM}] -> proplists:get_value(Node, PM, ?PEPNODE);
+ _ -> ?PEPNODE
end;
_ ->
Type
+ end,
+ ConfiguredTypes = plugins(ServerHost),
+ case lists:member(SelectedType, ConfiguredTypes) of
+ true -> SelectedType;
+ false -> hd(ConfiguredTypes)
end.
select_type(ServerHost, Host, Node) ->
select_type(ServerHost, Host, Node, hd(plugins(ServerHost))).
@@ -2982,7 +3064,7 @@ tree_call({_User, Server, _Resource}, Function, Args) ->
tree_call(Server, Function, Args);
tree_call(Host, Function, Args) ->
?DEBUG("tree_call ~p ~p ~p",[Host, Function, Args]),
- Module = case ets:lookup(gen_mod:get_module_proc(Host, pubsub_state), nodetree) of
+ Module = case ets:lookup(gen_mod:get_module_proc(Host, config), nodetree) of
[{nodetree, N}] -> N;
_ -> list_to_atom(?TREE_PREFIX ++ ?STDTREE)
end,
diff --git a/src/mod_pubsub/node.template b/src/mod_pubsub/node.template
index 02cd26fa..4911b30c 100644
--- a/src/mod_pubsub/node.template
+++ b/src/mod_pubsub/node.template
@@ -35,7 +35,7 @@
%% it's possible not to define some function at all
%% in that case, warning will be generated at compilation
%% and function call will fail,
-%% then mod_pubsub will call function from node_default
+%% then mod_pubsub will call function from node_hometree
%% (this makes code cleaner, but execution a little bit longer)
%% API definition
@@ -70,10 +70,10 @@
init(Host, ServerHost, Opts) ->
- node_default:init(Host, ServerHost, Opts).
+ node_hometree:init(Host, ServerHost, Opts).
terminate(Host, ServerHost) ->
- node_default:terminate(Host, ServerHost).
+ node_hometree:terminate(Host, ServerHost).
options() ->
[{node_type, __TO_BE_DEFINED__},
@@ -110,76 +110,76 @@ features() ->
].
create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access) ->
- node_default:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
+ node_hometree:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
create_node(NodeId, Owner) ->
- node_default:create_node(NodeId, Owner).
+ node_hometree:create_node(NodeId, Owner).
delete_node(Removed) ->
- node_default:delete_node(Removed).
+ node_hometree:delete_node(Removed).
subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup) ->
- node_default:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
+ node_hometree:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
unsubscribe_node(NodeId, Sender, Subscriber, SubID) ->
- node_default:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
+ node_hometree:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
- node_default:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
+ node_hometree:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
remove_extra_items(NodeId, MaxItems, ItemIds) ->
- node_default:remove_extra_items(NodeId, MaxItems, ItemIds).
+ node_hometree:remove_extra_items(NodeId, MaxItems, ItemIds).
delete_item(NodeId, Publisher, PublishModel, ItemId) ->
- node_default:delete_item(NodeId, Publisher, PublishModel, ItemId).
+ node_hometree:delete_item(NodeId, Publisher, PublishModel, ItemId).
purge_node(NodeId, Owner) ->
- node_default:purge_node(NodeId, Owner).
+ node_hometree:purge_node(NodeId, Owner).
get_entity_affiliations(Host, Owner) ->
- node_default:get_entity_affiliations(Host, Owner).
+ node_hometree:get_entity_affiliations(Host, Owner).
get_node_affiliations(NodeId) ->
- node_default:get_node_affiliations(NodeId).
+ node_hometree:get_node_affiliations(NodeId).
get_affiliation(NodeId, Owner) ->
- node_default:get_affiliation(NodeId, Owner).
+ node_hometree:get_affiliation(NodeId, Owner).
set_affiliation(NodeId, Owner, Affiliation) ->
- node_default:set_affiliation(NodeId, Owner, Affiliation).
+ node_hometree:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(Host, Owner) ->
- node_default:get_entity_subscriptions(Host, Owner).
+ node_hometree:get_entity_subscriptions(Host, Owner).
get_node_subscriptions(NodeId) ->
- node_default:get_node_subscriptions(NodeId).
+ node_hometree:get_node_subscriptions(NodeId).
get_subscription(NodeId, Owner) ->
- node_default:get_subscription(NodeId, Owner).
+ node_hometree:get_subscription(NodeId, Owner).
set_subscription(NodeId, Owner, Subscription) ->
- node_default:set_subscription(NodeId, Owner, Subscription).
+ node_hometree:set_subscription(NodeId, Owner, Subscription).
get_states(NodeId) ->
- node_default:get_states(NodeId).
+ node_hometree:get_states(NodeId).
get_state(NodeId, JID) ->
- node_default:get_state(NodeId, JID).
+ node_hometree:get_state(NodeId, JID).
set_state(State) ->
- node_default:set_state(State).
+ node_hometree:set_state(State).
get_items(NodeId, From) ->
- node_default:get_items(NodeId, From).
+ node_hometree:get_items(NodeId, From).
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId)
- node_default:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
get_item(NodeId, ItemId) ->
- node_default:get_item(NodeId, ItemId).
+ node_hometree:get_item(NodeId, ItemId).
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
set_item(Item) ->
- node_default:set_item(Item).
+ node_hometree:set_item(Item).
diff --git a/src/mod_pubsub/node_buddy.erl b/src/mod_pubsub/node_buddy.erl
index 7bb93ba0..5ba5ecd8 100644
--- a/src/mod_pubsub/node_buddy.erl
+++ b/src/mod_pubsub/node_buddy.erl
@@ -36,7 +36,7 @@
%% it's possible not to define some function at all
%% in that case, warning will be generated at compilation
%% and function call will fail,
-%% then mod_pubsub will call function from node_default
+%% then mod_pubsub will call function from node_hometree
%% (this makes code cleaner, but execution a little bit longer)
%% API definition
@@ -72,10 +72,10 @@
init(Host, ServerHost, Opts) ->
- node_default:init(Host, ServerHost, Opts).
+ node_hometree:init(Host, ServerHost, Opts).
terminate(Host, ServerHost) ->
- node_default:terminate(Host, ServerHost).
+ node_hometree:terminate(Host, ServerHost).
options() ->
[{node_type, buddy},
@@ -113,79 +113,79 @@ features() ->
].
create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access) ->
- node_default:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
+ node_hometree:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
create_node(NodeId, Owner) ->
- node_default:create_node(NodeId, Owner).
+ node_hometree:create_node(NodeId, Owner).
delete_node(Removed) ->
- node_default:delete_node(Removed).
+ node_hometree:delete_node(Removed).
subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup) ->
- node_default:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
+ node_hometree:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
unsubscribe_node(NodeId, Sender, Subscriber, SubID) ->
- node_default:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
+ node_hometree:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
- node_default:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
+ node_hometree:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
remove_extra_items(NodeId, MaxItems, ItemIds) ->
- node_default:remove_extra_items(NodeId, MaxItems, ItemIds).
+ node_hometree:remove_extra_items(NodeId, MaxItems, ItemIds).
delete_item(NodeId, Publisher, PublishModel, ItemId) ->
- node_default:delete_item(NodeId, Publisher, PublishModel, ItemId).
+ node_hometree:delete_item(NodeId, Publisher, PublishModel, ItemId).
purge_node(NodeId, Owner) ->
- node_default:purge_node(NodeId, Owner).
+ node_hometree:purge_node(NodeId, Owner).
get_entity_affiliations(Host, Owner) ->
- node_default:get_entity_affiliations(Host, Owner).
+ node_hometree:get_entity_affiliations(Host, Owner).
get_node_affiliations(NodeId) ->
- node_default:get_node_affiliations(NodeId).
+ node_hometree:get_node_affiliations(NodeId).
get_affiliation(NodeId, Owner) ->
- node_default:get_affiliation(NodeId, Owner).
+ node_hometree:get_affiliation(NodeId, Owner).
set_affiliation(NodeId, Owner, Affiliation) ->
- node_default:set_affiliation(NodeId, Owner, Affiliation).
+ node_hometree:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(Host, Owner) ->
- node_default:get_entity_subscriptions(Host, Owner).
+ node_hometree:get_entity_subscriptions(Host, Owner).
get_node_subscriptions(NodeId) ->
- node_default:get_node_subscriptions(NodeId).
+ node_hometree:get_node_subscriptions(NodeId).
get_subscription(NodeId, Owner) ->
- node_default:get_subscription(NodeId, Owner).
+ node_hometree:get_subscription(NodeId, Owner).
set_subscription(NodeId, Owner, Subscription) ->
- node_default:set_subscription(NodeId, Owner, Subscription).
+ node_hometree:set_subscription(NodeId, Owner, Subscription).
get_states(NodeId) ->
- node_default:get_states(NodeId).
+ node_hometree:get_states(NodeId).
get_state(NodeId, JID) ->
- node_default:get_state(NodeId, JID).
+ node_hometree:get_state(NodeId, JID).
set_state(State) ->
- node_default:set_state(State).
+ node_hometree:set_state(State).
get_items(NodeId, From) ->
- node_default:get_items(NodeId, From).
+ node_hometree:get_items(NodeId, From).
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
-
+ node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+
get_item(NodeId, ItemId) ->
- node_default:get_item(NodeId, ItemId).
+ node_hometree:get_item(NodeId, ItemId).
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
set_item(Item) ->
- node_default:set_item(Item).
+ node_hometree:set_item(Item).
get_item_name(Host, Node, Id) ->
- node_default:get_item_name(Host, Node, Id).
+ node_hometree:get_item_name(Host, Node, Id).
diff --git a/src/mod_pubsub/node_club.erl b/src/mod_pubsub/node_club.erl
index 9c978f48..48cb3bb5 100644
--- a/src/mod_pubsub/node_club.erl
+++ b/src/mod_pubsub/node_club.erl
@@ -36,7 +36,7 @@
%% it's possible not to define some function at all
%% in that case, warning will be generated at compilation
%% and function call will fail,
-%% then mod_pubsub will call function from node_default
+%% then mod_pubsub will call function from node_hometree
%% (this makes code cleaner, but execution a little bit longer)
%% API definition
@@ -72,10 +72,10 @@
init(Host, ServerHost, Opts) ->
- node_default:init(Host, ServerHost, Opts).
+ node_hometree:init(Host, ServerHost, Opts).
terminate(Host, ServerHost) ->
- node_default:terminate(Host, ServerHost).
+ node_hometree:terminate(Host, ServerHost).
options() ->
[{node_type, club},
@@ -112,79 +112,79 @@ features() ->
].
create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access) ->
- node_default:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
+ node_hometree:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
create_node(NodeId, Owner) ->
- node_default:create_node(NodeId, Owner).
+ node_hometree:create_node(NodeId, Owner).
delete_node(Removed) ->
- node_default:delete_node(Removed).
+ node_hometree:delete_node(Removed).
subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup) ->
- node_default:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
+ node_hometree:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
unsubscribe_node(NodeId, Sender, Subscriber, SubID) ->
- node_default:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
+ node_hometree:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
- node_default:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
+ node_hometree:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
remove_extra_items(NodeId, MaxItems, ItemIds) ->
- node_default:remove_extra_items(NodeId, MaxItems, ItemIds).
+ node_hometree:remove_extra_items(NodeId, MaxItems, ItemIds).
delete_item(NodeId, Publisher, PublishModel, ItemId) ->
- node_default:delete_item(NodeId, Publisher, PublishModel, ItemId).
+ node_hometree:delete_item(NodeId, Publisher, PublishModel, ItemId).
purge_node(NodeId, Owner) ->
- node_default:purge_node(NodeId, Owner).
+ node_hometree:purge_node(NodeId, Owner).
get_entity_affiliations(Host, Owner) ->
- node_default:get_entity_affiliations(Host, Owner).
+ node_hometree:get_entity_affiliations(Host, Owner).
get_node_affiliations(NodeId) ->
- node_default:get_node_affiliations(NodeId).
+ node_hometree:get_node_affiliations(NodeId).
get_affiliation(NodeId, Owner) ->
- node_default:get_affiliation(NodeId, Owner).
+ node_hometree:get_affiliation(NodeId, Owner).
set_affiliation(NodeId, Owner, Affiliation) ->
- node_default:set_affiliation(NodeId, Owner, Affiliation).
+ node_hometree:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(Host, Owner) ->
- node_default:get_entity_subscriptions(Host, Owner).
+ node_hometree:get_entity_subscriptions(Host, Owner).
get_node_subscriptions(NodeId) ->
- node_default:get_node_subscriptions(NodeId).
+ node_hometree:get_node_subscriptions(NodeId).
get_subscription(NodeId, Owner) ->
- node_default:get_subscription(NodeId, Owner).
+ node_hometree:get_subscription(NodeId, Owner).
set_subscription(NodeId, Owner, Subscription) ->
- node_default:set_subscription(NodeId, Owner, Subscription).
+ node_hometree:set_subscription(NodeId, Owner, Subscription).
get_states(NodeId) ->
- node_default:get_states(NodeId).
+ node_hometree:get_states(NodeId).
get_state(NodeId, JID) ->
- node_default:get_state(NodeId, JID).
+ node_hometree:get_state(NodeId, JID).
set_state(State) ->
- node_default:set_state(State).
+ node_hometree:set_state(State).
get_items(NodeId, From) ->
- node_default:get_items(NodeId, From).
+ node_hometree:get_items(NodeId, From).
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
get_item(NodeId, ItemId) ->
- node_default:get_item(NodeId, ItemId).
+ node_hometree:get_item(NodeId, ItemId).
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
set_item(Item) ->
- node_default:set_item(Item).
+ node_hometree:set_item(Item).
get_item_name(Host, Node, Id) ->
- node_default:get_item_name(Host, Node, Id).
+ node_hometree:get_item_name(Host, Node, Id).
diff --git a/src/mod_pubsub/node_dispatch.erl b/src/mod_pubsub/node_dispatch.erl
index a279d30a..63e7543c 100644
--- a/src/mod_pubsub/node_dispatch.erl
+++ b/src/mod_pubsub/node_dispatch.erl
@@ -70,10 +70,10 @@
init(Host, ServerHost, Opts) ->
- node_default:init(Host, ServerHost, Opts).
+ node_hometree:init(Host, ServerHost, Opts).
terminate(Host, ServerHost) ->
- node_default:terminate(Host, ServerHost).
+ node_hometree:terminate(Host, ServerHost).
options() ->
[{node_type, dispatch},
@@ -109,13 +109,13 @@ features() ->
].
create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access) ->
- node_default:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
+ node_hometree:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
create_node(NodeId, Owner) ->
- node_default:create_node(NodeId, Owner).
+ node_hometree:create_node(NodeId, Owner).
delete_node(Removed) ->
- node_default:delete_node(Removed).
+ node_hometree:delete_node(Removed).
subscribe_node(_NodeId, _Sender, _Subscriber, _AccessModel,
_SendLast, _PresenceSubscription, _RosterGroup) ->
@@ -126,7 +126,7 @@ unsubscribe_node(_NodeId, _Sender, _Subscriber, _SubID) ->
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
lists:foreach(fun(SubNode) ->
- node_default:publish_item(
+ node_hometree:publish_item(
SubNode#pubsub_node.id, Publisher, Model,
MaxItems, ItemId, Payload)
end, nodetree_default:get_subnodes(NodeId, Publisher)).
@@ -150,7 +150,7 @@ get_affiliation(_NodeId, _Owner) ->
{result, []}.
set_affiliation(NodeId, Owner, Affiliation) ->
- node_default:set_affiliation(NodeId, Owner, Affiliation).
+ node_hometree:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(_Host, _Owner) ->
{result, []}.
@@ -158,37 +158,37 @@ get_entity_subscriptions(_Host, _Owner) ->
get_node_subscriptions(NodeId) ->
%% note: get_node_subscriptions is used for broadcasting
%% DO NOT REMOVE
- node_default:get_node_subscriptions(NodeId).
+ node_hometree:get_node_subscriptions(NodeId).
get_subscription(_NodeId, _Owner) ->
{result, []}.
set_subscription(NodeId, Owner, Subscription) ->
- node_default:set_subscription(NodeId, Owner, Subscription).
+ node_hometree:set_subscription(NodeId, Owner, Subscription).
get_states(NodeId) ->
- node_default:get_states(NodeId).
+ node_hometree:get_states(NodeId).
get_state(NodeId, JID) ->
- node_default:get_state(NodeId, JID).
+ node_hometree:get_state(NodeId, JID).
set_state(State) ->
- node_default:set_state(State).
+ node_hometree:set_state(State).
get_items(NodeId, From) ->
- node_default:get_items(NodeId, From).
+ node_hometree:get_items(NodeId, From).
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
get_item(NodeId, ItemId) ->
- node_default:get_item(NodeId, ItemId).
+ node_hometree:get_item(NodeId, ItemId).
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
set_item(Item) ->
- node_default:set_item(Item).
+ node_hometree:set_item(Item).
get_item_name(Host, Node, Id) ->
- node_default:get_item_name(Host, Node, Id).
+ node_hometree:get_item_name(Host, Node, Id).
diff --git a/src/mod_pubsub/node_flat.erl b/src/mod_pubsub/node_flat.erl
index 2d484e97..754855ce 100644
--- a/src/mod_pubsub/node_flat.erl
+++ b/src/mod_pubsub/node_flat.erl
@@ -63,10 +63,10 @@
init(Host, ServerHost, Opts) ->
- node_default:init(Host, ServerHost, Opts).
+ node_hometree:init(Host, ServerHost, Opts).
terminate(Host, ServerHost) ->
- node_default:terminate(Host, ServerHost).
+ node_hometree:terminate(Host, ServerHost).
options() ->
[{node_type, flat},
@@ -86,9 +86,9 @@ options() ->
{presence_based_delivery, false}].
features() ->
- node_default:features().
+ node_hometree:features().
-%% use same code as node_default, but do not limite node to
+%% use same code as node_hometree, but do not limite node to
%% the home/localhost/user/... hierarchy
%% any node is allowed
create_node_permission(Host, ServerHost, _Node, _ParentNode, Owner, Access) ->
@@ -102,76 +102,76 @@ create_node_permission(Host, ServerHost, _Node, _ParentNode, Owner, Access) ->
{result, Allowed}.
create_node(NodeId, Owner) ->
- node_default:create_node(NodeId, Owner).
+ node_hometree:create_node(NodeId, Owner).
delete_node(Removed) ->
- node_default:delete_node(Removed).
+ node_hometree:delete_node(Removed).
subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup) ->
- node_default:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
+ node_hometree:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
unsubscribe_node(NodeId, Sender, Subscriber, SubID) ->
- node_default:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
+ node_hometree:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
- node_default:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
+ node_hometree:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
remove_extra_items(NodeId, MaxItems, ItemIds) ->
- node_default:remove_extra_items(NodeId, MaxItems, ItemIds).
+ node_hometree:remove_extra_items(NodeId, MaxItems, ItemIds).
delete_item(NodeId, Publisher, PublishModel, ItemId) ->
- node_default:delete_item(NodeId, Publisher, PublishModel, ItemId).
+ node_hometree:delete_item(NodeId, Publisher, PublishModel, ItemId).
purge_node(NodeId, Owner) ->
- node_default:purge_node(NodeId, Owner).
+ node_hometree:purge_node(NodeId, Owner).
get_entity_affiliations(Host, Owner) ->
- node_default:get_entity_affiliations(Host, Owner).
+ node_hometree:get_entity_affiliations(Host, Owner).
get_node_affiliations(NodeId) ->
- node_default:get_node_affiliations(NodeId).
+ node_hometree:get_node_affiliations(NodeId).
get_affiliation(NodeId, Owner) ->
- node_default:get_affiliation(NodeId, Owner).
+ node_hometree:get_affiliation(NodeId, Owner).
set_affiliation(NodeId, Owner, Affiliation) ->
- node_default:set_affiliation(NodeId, Owner, Affiliation).
+ node_hometree:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(Host, Owner) ->
- node_default:get_entity_subscriptions(Host, Owner).
+ node_hometree:get_entity_subscriptions(Host, Owner).
get_node_subscriptions(NodeId) ->
- node_default:get_node_subscriptions(NodeId).
+ node_hometree:get_node_subscriptions(NodeId).
get_subscription(NodeId, Owner) ->
- node_default:get_subscription(NodeId, Owner).
+ node_hometree:get_subscription(NodeId, Owner).
set_subscription(NodeId, Owner, Subscription) ->
- node_default:set_subscription(NodeId, Owner, Subscription).
+ node_hometree:set_subscription(NodeId, Owner, Subscription).
get_states(NodeId) ->
- node_default:get_states(NodeId).
+ node_hometree:get_states(NodeId).
get_state(NodeId, JID) ->
- node_default:get_state(NodeId, JID).
+ node_hometree:get_state(NodeId, JID).
set_state(State) ->
- node_default:set_state(State).
+ node_hometree:set_state(State).
get_items(NodeId, From) ->
- node_default:get_items(NodeId, From).
+ node_hometree:get_items(NodeId, From).
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
get_item(NodeId, ItemId) ->
- node_default:get_item(NodeId, ItemId).
+ node_hometree:get_item(NodeId, ItemId).
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
set_item(Item) ->
- node_default:set_item(Item).
+ node_hometree:set_item(Item).
get_item_name(Host, Node, Id) ->
- node_default:get_item_name(Host, Node, Id).
+ node_hometree:get_item_name(Host, Node, Id).
diff --git a/src/mod_pubsub/node_default.erl b/src/mod_pubsub/node_hometree.erl
index 4cab47f3..991c2e43 100644
--- a/src/mod_pubsub/node_default.erl
+++ b/src/mod_pubsub/node_hometree.erl
@@ -38,7 +38,7 @@
%%% useable and useful as is. Please, send us comments, feedback and
%%% improvements.</p>
--module(node_default).
+-module(node_hometree).
-author('christophe.romain@process-one.net').
-include("pubsub.hrl").
diff --git a/src/mod_pubsub/node_mb.erl b/src/mod_pubsub/node_mb.erl
index 64142163..4908481e 100644
--- a/src/mod_pubsub/node_mb.erl
+++ b/src/mod_pubsub/node_mb.erl
@@ -118,10 +118,10 @@ features() ->
create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access) ->
node_pep:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
-
+
create_node(NodeId, Owner) ->
- node_pep:create_node(NodeId, Owner).
-
+ node_pep:create_node(NodeId, Owner).
+
delete_node(Removed) ->
node_pep:delete_node(Removed).
@@ -150,13 +150,13 @@ get_entity_affiliations(Host, Owner) ->
node_pep:get_entity_affiliations(Host, Owner).
get_node_affiliations(NodeId) ->
- node_pep:get_node_affiliations(NodeId).
+ node_pep:get_node_affiliations(NodeId).
get_affiliation(NodeId, Owner) ->
node_pep:get_affiliation(NodeId, Owner).
set_affiliation(NodeId, Owner, Affiliation) ->
- node_pep:set_affiliation(NodeId, Owner, Affiliation).
+ node_pep:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(Host, Owner) ->
node_pep:get_entity_subscriptions(Host, Owner).
diff --git a/src/mod_pubsub/node_pep.erl b/src/mod_pubsub/node_pep.erl
index f0f7ac4b..84c9af7c 100644
--- a/src/mod_pubsub/node_pep.erl
+++ b/src/mod_pubsub/node_pep.erl
@@ -67,12 +67,12 @@
]).
init(Host, ServerHost, Opts) ->
- node_default:init(Host, ServerHost, Opts),
+ node_hometree:init(Host, ServerHost, Opts),
complain_if_modcaps_disabled(ServerHost),
ok.
terminate(Host, ServerHost) ->
- node_default:terminate(Host, ServerHost),
+ node_hometree:terminate(Host, ServerHost),
ok.
options() ->
@@ -132,40 +132,40 @@ create_node_permission(Host, ServerHost, _Node, _ParentNode, Owner, Access) ->
{result, Allowed}.
create_node(NodeId, Owner) ->
- case node_default:create_node(NodeId, Owner) of
+ case node_hometree:create_node(NodeId, Owner) of
{result, _} -> {result, []};
Error -> Error
end.
delete_node(Removed) ->
- case node_default:delete_node(Removed) of
+ case node_hometree:delete_node(Removed) of
{result, {_, _, Removed}} -> {result, {[], Removed}};
Error -> Error
end.
subscribe_node(NodeId, Sender, Subscriber, AccessModel,
SendLast, PresenceSubscription, RosterGroup) ->
- node_default:subscribe_node(
+ node_hometree:subscribe_node(
NodeId, Sender, Subscriber, AccessModel, SendLast,
PresenceSubscription, RosterGroup).
unsubscribe_node(NodeId, Sender, Subscriber, SubID) ->
- case node_default:unsubscribe_node(NodeId, Sender, Subscriber, SubID) of
+ case node_hometree:unsubscribe_node(NodeId, Sender, Subscriber, SubID) of
{error, Error} -> {error, Error};
{result, _} -> {result, []}
end.
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
- node_default:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
+ node_hometree:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
remove_extra_items(NodeId, MaxItems, ItemIds) ->
- node_default:remove_extra_items(NodeId, MaxItems, ItemIds).
+ node_hometree:remove_extra_items(NodeId, MaxItems, ItemIds).
delete_item(NodeId, Publisher, PublishModel, ItemId) ->
- node_default:delete_item(NodeId, Publisher, PublishModel, ItemId).
+ node_hometree:delete_item(NodeId, Publisher, PublishModel, ItemId).
purge_node(NodeId, Owner) ->
- node_default:purge_node(NodeId, Owner).
+ node_hometree:purge_node(NodeId, Owner).
get_entity_affiliations(_Host, Owner) ->
{_, D, _} = SubKey = jlib:jid_tolower(Owner),
@@ -185,13 +185,13 @@ get_entity_affiliations(_Host, Owner) ->
{result, Reply}.
get_node_affiliations(NodeId) ->
- node_default:get_node_affiliations(NodeId).
+ node_hometree:get_node_affiliations(NodeId).
get_affiliation(NodeId, Owner) ->
- node_default:get_affiliation(NodeId, Owner).
+ node_hometree:get_affiliation(NodeId, Owner).
set_affiliation(NodeId, Owner, Affiliation) ->
- node_default:set_affiliation(NodeId, Owner, Affiliation).
+ node_hometree:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(_Host, Owner) ->
{U, D, _} = SubKey = jlib:jid_tolower(Owner),
@@ -222,40 +222,40 @@ get_node_subscriptions(NodeId) ->
%% but that call returns also all subscription to none
%% and this is required for broadcast to occurs
%% DO NOT REMOVE
- node_default:get_node_subscriptions(NodeId).
+ node_hometree:get_node_subscriptions(NodeId).
get_subscription(NodeId, Owner) ->
- node_default:get_subscription(NodeId, Owner).
+ node_hometree:get_subscription(NodeId, Owner).
set_subscription(NodeId, Owner, Subscription) ->
- node_default:set_subscription(NodeId, Owner, Subscription).
+ node_hometree:set_subscription(NodeId, Owner, Subscription).
get_states(NodeId) ->
- node_default:get_states(NodeId).
+ node_hometree:get_states(NodeId).
get_state(NodeId, JID) ->
- node_default:get_state(NodeId, JID).
+ node_hometree:get_state(NodeId, JID).
set_state(State) ->
- node_default:set_state(State).
+ node_hometree:set_state(State).
get_items(NodeId, From) ->
- node_default:get_items(NodeId, From).
+ node_hometree:get_items(NodeId, From).
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
get_item(NodeId, ItemId) ->
- node_default:get_item(NodeId, ItemId).
+ node_hometree:get_item(NodeId, ItemId).
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+ node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
set_item(Item) ->
- node_default:set_item(Item).
+ node_hometree:set_item(Item).
get_item_name(Host, Node, Id) ->
- node_default:get_item_name(Host, Node, Id).
+ node_hometree:get_item_name(Host, Node, Id).
%%%
diff --git a/src/mod_pubsub/node_private.erl b/src/mod_pubsub/node_private.erl
index c0fb667e..6972c1a2 100644
--- a/src/mod_pubsub/node_private.erl
+++ b/src/mod_pubsub/node_private.erl
@@ -36,7 +36,7 @@
%% it's possible not to define some function at all
%% in that case, warning will be generated at compilation
%% and function call will fail,
-%% then mod_pubsub will call function from node_default
+%% then mod_pubsub will call function from node_hometree
%% (this makes code cleaner, but execution a little bit longer)
%% API definition
@@ -72,10 +72,10 @@
init(Host, ServerHost, Opts) ->
- node_default:init(Host, ServerHost, Opts).
+ node_hometree:init(Host, ServerHost, Opts).
terminate(Host, ServerHost) ->
- node_default:terminate(Host, ServerHost).
+ node_hometree:terminate(Host, ServerHost).
options() ->
[{node_type, private},
@@ -112,82 +112,82 @@ features() ->
].
create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access) ->
- node_default:create_node_permission(Host, ServerHost, Node, ParentNode,
+ node_hometree:create_node_permission(Host, ServerHost, Node, ParentNode,
Owner, Access).
create_node(NodeId, Owner) ->
- node_default:create_node(NodeId, Owner).
+ node_hometree:create_node(NodeId, Owner).
delete_node(Removed) ->
- node_default:delete_node(Removed).
+ node_hometree:delete_node(Removed).
subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast,
PresenceSubscription, RosterGroup) ->
- node_default:subscribe_node(NodeId, Sender, Subscriber, AccessModel,
+ node_hometree:subscribe_node(NodeId, Sender, Subscriber, AccessModel,
SendLast, PresenceSubscription, RosterGroup).
unsubscribe_node(NodeId, Sender, Subscriber, SubID) ->
- node_default:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
+ node_hometree:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
- node_default:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
+ node_hometree:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
remove_extra_items(NodeId, MaxItems, ItemIds) ->
- node_default:remove_extra_items(NodeId, MaxItems, ItemIds).
+ node_hometree:remove_extra_items(NodeId, MaxItems, ItemIds).
delete_item(NodeId, Publisher, PublishModel, ItemId) ->
- node_default:delete_item(NodeId, Publisher, PublishModel, ItemId).
+ node_hometree:delete_item(NodeId, Publisher, PublishModel, ItemId).
purge_node(NodeId, Owner) ->
- node_default:purge_node(NodeId, Owner).
+ node_hometree:purge_node(NodeId, Owner).
get_entity_affiliations(Host, Owner) ->
- node_default:get_entity_affiliations(Host, Owner).
+ node_hometree:get_entity_affiliations(Host, Owner).
get_node_affiliations(NodeId) ->
- node_default:get_node_affiliations(NodeId).
+ node_hometree:get_node_affiliations(NodeId).
get_affiliation(NodeId, Owner) ->
- node_default:get_affiliation(NodeId, Owner).
+ node_hometree:get_affiliation(NodeId, Owner).
set_affiliation(NodeId, Owner, Affiliation) ->
- node_default:set_affiliation(NodeId, Owner, Affiliation).
+ node_hometree:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(Host, Owner) ->
- node_default:get_entity_subscriptions(Host, Owner).
+ node_hometree:get_entity_subscriptions(Host, Owner).
get_node_subscriptions(NodeId) ->
- node_default:get_node_subscriptions(NodeId).
+ node_hometree:get_node_subscriptions(NodeId).
get_subscription(NodeId, Owner) ->
- node_default:get_subscription(NodeId, Owner).
+ node_hometree:get_subscription(NodeId, Owner).
set_subscription(NodeId, Owner, Subscription) ->
- node_default:set_subscription(NodeId, Owner, Subscription).
+ node_hometree:set_subscription(NodeId, Owner, Subscription).
get_states(NodeId) ->
- node_default:get_states(NodeId).
+ node_hometree:get_states(NodeId).
get_state(NodeId, JID) ->
- node_default:get_state(NodeId, JID).
+ node_hometree:get_state(NodeId, JID).
set_state(State) ->
- node_default:set_state(State).
+ node_hometree:set_state(State).
get_items(NodeId, From) ->
- node_default:get_items(NodeId, From).
+ node_hometree:get_items(NodeId, From).
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
-
+ node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+
get_item(NodeId, ItemId) ->
- node_default:get_item(NodeId, ItemId).
+ node_hometree:get_item(NodeId, ItemId).
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
-
+ node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+
set_item(Item) ->
- node_default:set_item(Item).
+ node_hometree:set_item(Item).
get_item_name(Host, Node, Id) ->
- node_default:get_item_name(Host, Node, Id).
+ node_hometree:get_item_name(Host, Node, Id).
diff --git a/src/mod_pubsub/node_public.erl b/src/mod_pubsub/node_public.erl
index 89360904..9dcb93d7 100644
--- a/src/mod_pubsub/node_public.erl
+++ b/src/mod_pubsub/node_public.erl
@@ -36,7 +36,7 @@
%% it's possible not to define some function at all
%% in that case, warning will be generated at compilation
%% and function call will fail,
-%% then mod_pubsub will call function from node_default
+%% then mod_pubsub will call function from node_hometree
%% (this makes code cleaner, but execution a little bit longer)
%% API definition
@@ -72,10 +72,10 @@
init(Host, ServerHost, Opts) ->
- node_default:init(Host, ServerHost, Opts).
+ node_hometree:init(Host, ServerHost, Opts).
terminate(Host, ServerHost) ->
- node_default:terminate(Host, ServerHost).
+ node_hometree:terminate(Host, ServerHost).
options() ->
[{node_type, public},
@@ -112,81 +112,81 @@ features() ->
].
create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access) ->
- node_default:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
+ node_hometree:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
create_node(NodeId, Owner) ->
- node_default:create_node(NodeId, Owner).
+ node_hometree:create_node(NodeId, Owner).
delete_node(Removed) ->
- node_default:delete_node(Removed).
+ node_hometree:delete_node(Removed).
subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup) ->
- node_default:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
+ node_hometree:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
unsubscribe_node(NodeId, Sender, Subscriber, SubID) ->
- node_default:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
+ node_hometree:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
- node_default:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
+ node_hometree:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
remove_extra_items(NodeId, MaxItems, ItemIds) ->
- node_default:remove_extra_items(NodeId, MaxItems, ItemIds).
+ node_hometree:remove_extra_items(NodeId, MaxItems, ItemIds).
delete_item(NodeId, Publisher, PublishModel, ItemId) ->
- node_default:delete_item(NodeId, Publisher, PublishModel, ItemId).
+ node_hometree:delete_item(NodeId, Publisher, PublishModel, ItemId).
purge_node(NodeId, Owner) ->
- node_default:purge_node(NodeId, Owner).
+ node_hometree:purge_node(NodeId, Owner).
get_entity_affiliations(Host, Owner) ->
- node_default:get_entity_affiliations(Host, Owner).
+ node_hometree:get_entity_affiliations(Host, Owner).
get_node_affiliations(NodeId) ->
- node_default:get_node_affiliations(NodeId).
+ node_hometree:get_node_affiliations(NodeId).
get_affiliation(NodeId, Owner) ->
- node_default:get_affiliation(NodeId, Owner).
+ node_hometree:get_affiliation(NodeId, Owner).
set_affiliation(NodeId, Owner, Affiliation) ->
- node_default:set_affiliation(NodeId, Owner, Affiliation).
+ node_hometree:set_affiliation(NodeId, Owner, Affiliation).
get_entity_subscriptions(Host, Owner) ->
- node_default:get_entity_subscriptions(Host, Owner).
+ node_hometree:get_entity_subscriptions(Host, Owner).
get_node_subscriptions(NodeId) ->
- node_default:get_node_subscriptions(NodeId).
+ node_hometree:get_node_subscriptions(NodeId).
get_subscription(NodeId, Owner) ->
- node_default:get_subscription(NodeId, Owner).
+ node_hometree:get_subscription(NodeId, Owner).
set_subscription(NodeId, Owner, Subscription) ->
- node_default:set_subscription(NodeId, Owner, Subscription).
+ node_hometree:set_subscription(NodeId, Owner, Subscription).
get_states(NodeId) ->
- node_default:get_states(NodeId).
+ node_hometree:get_states(NodeId).
get_state(NodeId, JID) ->
- node_default:get_state(NodeId, JID).
+ node_hometree:get_state(NodeId, JID).
set_state(State) ->
- node_default:set_state(State).
+ node_hometree:set_state(State).
get_items(NodeId, From) ->
- node_default:get_items(NodeId, From).
+ node_hometree:get_items(NodeId, From).
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
-
+ node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+
get_item(NodeId, ItemId) ->
- node_default:get_item(NodeId, ItemId).
+ node_hometree:get_item(NodeId, ItemId).
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
- node_default:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
-
+ node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
+
set_item(Item) ->
- node_default:set_item(Item).
+ node_hometree:set_item(Item).
%% @doc <p>Return the name of the node if known: Default is to return
%% node id.</p>
get_item_name(Host, Node, Id) ->
- node_default:get_item_name(Host, Node, Id).
+ node_hometree:get_item_name(Host, Node, Id).
diff --git a/src/mod_pubsub/nodetree_default.erl b/src/mod_pubsub/nodetree_tree.erl
index ac27cf3c..8f49a06b 100644
--- a/src/mod_pubsub/nodetree_default.erl
+++ b/src/mod_pubsub/nodetree_tree.erl
@@ -33,7 +33,7 @@
%%% useable and useful as is. Please, send us comments, feedback and
%%% improvements.</p>
--module(nodetree_default).
+-module(nodetree_tree).
-author('christophe.romain@process-one.net').
-include("pubsub.hrl").