diff options
author | Christophe Romain <christophe.romain@process-one.net> | 2009-04-30 05:18:06 +0000 |
---|---|---|
committer | Christophe Romain <christophe.romain@process-one.net> | 2009-04-30 05:18:06 +0000 |
commit | f8780bc6ee15e738807531df2489173b7da19561 (patch) | |
tree | 0f03e2da5cdc312336716464125cf702101ebf97 /src/mod_pubsub/nodetree_virtual.erl | |
parent | * src/ejabberd_hooks.erl: Support distributed hooks (EJAB-829) (diff) |
PubSub/PEP API change for major optimization
SVN Revision: 2048
Diffstat (limited to 'src/mod_pubsub/nodetree_virtual.erl')
-rw-r--r-- | src/mod_pubsub/nodetree_virtual.erl | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/mod_pubsub/nodetree_virtual.erl b/src/mod_pubsub/nodetree_virtual.erl index dcfd9e5e..6913b6e4 100644 --- a/src/mod_pubsub/nodetree_virtual.erl +++ b/src/mod_pubsub/nodetree_virtual.erl @@ -48,7 +48,7 @@ get_nodes/2, get_nodes/1, get_subnodes/3, - get_subnodes_tree/2, + get_subnodes_tree/3, create_node/5, delete_node/2 ]). @@ -94,14 +94,13 @@ get_node(Host, Node, _From) -> get_node(Host, Node) -> #pubsub_node{nodeid = {Host, Node}}. -get_nodes(Key, _From) -> - get_nodes(Key). - -%% @spec (Key) -> [pubsubNode()] +%% @spec (Host) -> [pubsubNode()] %% Host = mod_pubsub:host() | mod_pubsub:jid() %% @doc <p>Virtual node tree does not handle a node database. Any node is considered %% as existing. Nodes list can not be determined.</p> -get_nodes(_Key) -> +get_nodes(Host, _From) -> + get_nodes(Host). +get_nodes(_Host) -> []. %% @spec (Host, Node, From) -> [pubsubNode()] @@ -109,13 +108,17 @@ get_nodes(_Key) -> %% Node = mod_pubsub:pubsubNode() %% From = mod_pubsub:jid() %% @doc <p>Virtual node tree does not handle parent/child. Child list is empty.</p> -get_subnodes(_Host, _Node, _From) -> +get_subnodes(Host, Node, _From) -> + get_subnodes(Host, Node). +get_subnodes(_Host, _Node) -> []. %% @spec (Host, Index) -> [pubsubNode()] %% Host = mod_pubsub:host() %% Node = mod_pubsub:pubsubNode() %% @doc <p>Virtual node tree does not handle parent/child. Child list is empty.</p> +get_subnodes_tree(Host, Node, _From) -> + get_subnodes_tree(Host, Node). get_subnodes_tree(_Host, _Node) -> []. @@ -128,11 +131,11 @@ get_subnodes_tree(_Host, _Node) -> %% @doc <p>No node record is stored on database. Any valid node %% is considered as already created.</p> %% <p>default allowed nodes: /home/host/user/any/node/name</p> -create_node(_Host, Node, _Type, Owner, _Options) -> +create_node(Host, Node, _Type, Owner, _Options) -> UserName = Owner#jid.luser, UserHost = Owner#jid.lserver, case Node of - ["home", UserHost, UserName | _] -> {error, ?ERR_CONFLICT}; + ["home", UserHost, UserName | _] -> {error, {virtual, {Host, Node}}}; _ -> {error, ?ERR_NOT_ALLOWED} end. @@ -141,5 +144,5 @@ create_node(_Host, Node, _Type, Owner, _Options) -> %% Node = mod_pubsub:pubsubNode() %% @doc <p>Virtual node tree does not handle parent/child. %% node deletion just affects the corresponding node.</p> -delete_node(_Host, Node) -> - [Node]. +delete_node(Host, Node) -> + [get_node(Host, Node)]. |