36
36
%% it's possible not to define some function at all
37
37
%% in that case, warning will be generated at compilation
38
38
%% and function call will fail,
39
%% then mod_pubsub will call function from node_default
39
%% then mod_pubsub will call function from node_hometree
40
40
%% (this makes code cleaner, but execution a little bit longer)
43
43
-export([init/3, terminate/2,
44
44
options/0, features/0,
45
45
create_node_permission/6,
54
54
get_entity_affiliations/2,
55
get_node_affiliations/2,
55
get_node_affiliations/1,
58
58
get_entity_subscriptions/2,
59
get_node_subscriptions/2,
59
get_node_subscriptions/1,
73
77
init(Host, ServerHost, Opts) ->
74
node_default:init(Host, ServerHost, Opts).
78
node_hometree:init(Host, ServerHost, Opts).
76
80
terminate(Host, ServerHost) ->
77
node_default:terminate(Host, ServerHost).
81
node_hometree:terminate(Host, ServerHost).
81
{deliver_payloads, true},
84
[{deliver_payloads, true},
82
85
{notify_config, false},
83
86
{notify_delete, false},
84
87
{notify_retract, true},
85
88
{persist_items, true},
86
{max_items, ?MAXITEMS div 2},
89
{max_items, ?MAXITEMS},
88
91
{access_model, presence},
89
92
{roster_groups_allowed, []},
90
93
{publish_model, publishers},
94
{notification_type, headline},
91
95
{max_payload_size, ?MAX_PAYLOAD_SIZE},
92
96
{send_last_published_item, never},
93
97
{deliver_notifications, true},
112
118
create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access) ->
113
node_default:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
115
create_node(Host, Node, Owner) ->
116
node_default:create_node(Host, Node, Owner).
118
delete_node(Host, Removed) ->
119
node_default:delete_node(Host, Removed).
121
subscribe_node(Host, Node, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup) ->
122
node_default:subscribe_node(Host, Node, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup).
124
unsubscribe_node(Host, Node, Sender, Subscriber, SubID) ->
125
node_default:unsubscribe_node(Host, Node, Sender, Subscriber, SubID).
127
publish_item(Host, Node, Publisher, Model, MaxItems, ItemId, Payload) ->
128
node_default:publish_item(Host, Node, Publisher, Model, MaxItems, ItemId, Payload).
130
remove_extra_items(Host, Node, MaxItems, ItemIds) ->
131
node_default:remove_extra_items(Host, Node, MaxItems, ItemIds).
133
delete_item(Host, Node, JID, ItemId) ->
134
node_default:delete_item(Host, Node, JID, ItemId).
136
purge_node(Host, Node, Owner) ->
137
node_default:purge_node(Host, Node, Owner).
119
node_hometree:create_node_permission(Host, ServerHost, Node, ParentNode, Owner, Access).
121
create_node(NodeId, Owner) ->
122
node_hometree:create_node(NodeId, Owner).
124
delete_node(Removed) ->
125
node_hometree:delete_node(Removed).
127
subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup, Options) ->
128
node_hometree:subscribe_node(NodeId, Sender, Subscriber, AccessModel, SendLast, PresenceSubscription, RosterGroup, Options).
130
unsubscribe_node(NodeId, Sender, Subscriber, SubID) ->
131
node_hometree:unsubscribe_node(NodeId, Sender, Subscriber, SubID).
133
publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload) ->
134
node_hometree:publish_item(NodeId, Publisher, Model, MaxItems, ItemId, Payload).
136
remove_extra_items(NodeId, MaxItems, ItemIds) ->
137
node_hometree:remove_extra_items(NodeId, MaxItems, ItemIds).
139
delete_item(NodeId, Publisher, PublishModel, ItemId) ->
140
node_hometree:delete_item(NodeId, Publisher, PublishModel, ItemId).
142
purge_node(NodeId, Owner) ->
143
node_hometree:purge_node(NodeId, Owner).
139
145
get_entity_affiliations(Host, Owner) ->
140
node_default:get_entity_affiliations(Host, Owner).
142
get_node_affiliations(Host, Node) ->
143
node_default:get_node_affiliations(Host, Node).
145
get_affiliation(Host, Node, Owner) ->
146
node_default:get_affiliation(Host, Node, Owner).
148
set_affiliation(Host, Node, Owner, Affiliation) ->
149
node_default:set_affiliation(Host, Node, Owner, Affiliation).
146
node_hometree:get_entity_affiliations(Host, Owner).
148
get_node_affiliations(NodeId) ->
149
node_hometree:get_node_affiliations(NodeId).
151
get_affiliation(NodeId, Owner) ->
152
node_hometree:get_affiliation(NodeId, Owner).
154
set_affiliation(NodeId, Owner, Affiliation) ->
155
node_hometree:set_affiliation(NodeId, Owner, Affiliation).
151
157
get_entity_subscriptions(Host, Owner) ->
152
node_default:get_entity_subscriptions(Host, Owner).
154
get_node_subscriptions(Host, Node) ->
155
node_default:get_node_subscriptions(Host, Node).
157
get_subscription(Host, Node, Owner) ->
158
node_default:get_subscription(Host, Node, Owner).
160
set_subscription(Host, Node, Owner, Subscription) ->
161
node_default:set_subscription(Host, Node, Owner, Subscription).
163
get_states(Host, Node) ->
164
node_default:get_states(Host, Node).
166
get_state(Host, Node, JID) ->
167
node_default:get_state(Host, Node, JID).
158
node_hometree:get_entity_subscriptions(Host, Owner).
160
get_node_subscriptions(NodeId) ->
161
node_hometree:get_node_subscriptions(NodeId).
163
get_subscriptions(NodeId, Owner) ->
164
node_hometree:get_subscriptions(NodeId, Owner).
166
set_subscriptions(NodeId, Owner, Subscription, SubId) ->
167
node_hometree:set_subscriptions(NodeId, Owner, Subscription, SubId).
169
get_pending_nodes(Host, Owner) ->
170
node_hometree:get_pending_nodes(Host, Owner).
172
get_states(NodeId) ->
173
node_hometree:get_states(NodeId).
175
get_state(NodeId, JID) ->
176
node_hometree:get_state(NodeId, JID).
169
178
set_state(State) ->
170
node_default:set_state(State).
172
get_items(Host, Node) ->
173
node_default:get_items(Host, Node).
175
get_items(Host, Node, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
176
node_default:get_items(Host, Node, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
178
get_item(Host, Node, ItemId) ->
179
node_default:get_item(Host, Node, ItemId).
181
get_item(Host, Node, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
182
node_default:get_item(Host, Node, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
179
node_hometree:set_state(State).
181
get_items(NodeId, From) ->
182
node_hometree:get_items(NodeId, From).
184
get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
185
node_hometree:get_items(NodeId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
187
get_item(NodeId, ItemId) ->
188
node_hometree:get_item(NodeId, ItemId).
190
get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId) ->
191
node_hometree:get_item(NodeId, ItemId, JID, AccessModel, PresenceSubscription, RosterGroup, SubId).
184
193
set_item(Item) ->
185
node_default:set_item(Item).
194
node_hometree:set_item(Item).
196
get_item_name(Host, Node, Id) ->
197
node_hometree:get_item_name(Host, Node, Id).
199
node_to_path(Node) ->
200
node_flat:node_to_path(Node).
202
path_to_node(Path) ->
203
node_flat:path_to_node(Path).