diff options
Diffstat (limited to 'src/mod_pubsub')
-rw-r--r-- | src/mod_pubsub/mod_pubsub.erl | 126 | ||||
-rw-r--r-- | src/mod_pubsub/node.template | 56 | ||||
-rw-r--r-- | src/mod_pubsub/node_buddy.erl | 60 | ||||
-rw-r--r-- | src/mod_pubsub/node_club.erl | 58 | ||||
-rw-r--r-- | src/mod_pubsub/node_dispatch.erl | 36 | ||||
-rw-r--r-- | src/mod_pubsub/node_flat.erl | 58 | ||||
-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.erl | 10 | ||||
-rw-r--r-- | src/mod_pubsub/node_pep.erl | 50 | ||||
-rw-r--r-- | src/mod_pubsub/node_private.erl | 62 | ||||
-rw-r--r-- | src/mod_pubsub/node_public.erl | 62 | ||||
-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"). |