diff options
Diffstat (limited to 'src/mod_pubsub/pubsub.hrl')
-rw-r--r-- | src/mod_pubsub/pubsub.hrl | 257 |
1 files changed, 0 insertions, 257 deletions
diff --git a/src/mod_pubsub/pubsub.hrl b/src/mod_pubsub/pubsub.hrl deleted file mode 100644 index 4f2cc9f38..000000000 --- a/src/mod_pubsub/pubsub.hrl +++ /dev/null @@ -1,257 +0,0 @@ -%%% ==================================================================== -%%% ``The contents of this file are subject to the Erlang Public License, -%%% Version 1.1, (the "License"); you may not use this file except in -%%% compliance with the License. You should have received a copy of the -%%% Erlang Public License along with this software. If not, it can be -%%% retrieved via the world wide web at http://www.erlang.org/. -%%% -%%% -%%% Software distributed under the License is distributed on an "AS IS" -%%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -%%% the License for the specific language governing rights and limitations -%%% under the License. -%%% -%%% -%%% The Initial Developer of the Original Code is ProcessOne. -%%% Portions created by ProcessOne are Copyright 2006-2013, ProcessOne -%%% All Rights Reserved.'' -%%% This software is copyright 2006-2013, ProcessOne. -%%% -%%% -%%% copyright 2006-2013 ProcessOne -%%% -%%% This file contains pubsub types definition. -%%% ==================================================================== - -%% ------------------------------- -%% Pubsub constants --define(ERR_EXTENDED(E, C), - mod_pubsub:extended_error(E, C)). - -%% The actual limit can be configured with mod_pubsub's option max_items_node --define(MAXITEMS, 10). - -%% this is currently a hard limit. -%% Would be nice to have it configurable. --define(MAX_PAYLOAD_SIZE, 60000). - -%% ------------------------------- -%% Pubsub types - -%% @type hostPubsub() = string(). --type(hostPubsub() :: binary()). -%% <p><tt>hostPubsub</tt> is the name of the PubSub service. For example, it can be -%% <tt>"pubsub.localhost"</tt>.</p> - --type(hostPEP() :: {binary(), binary(), <<>>}). -%% @type hostPEP() = {User, Server, Resource} -%% User = string() -%% Server = string() -%% Resource = []. -%% <p>For example, it can be : -%% ```{"bob", "example.org", []}'''.</p> - --type(host() :: hostPubsub() | hostPEP()). -%% @type host() = hostPubsub() | hostPEP(). - --type(nodeId() :: binary()). -%% @type nodeId() = binary(). -%% <p>A node is defined by a list of its ancestors. The last element is the name -%% of the current node. For example: -%% of the current node. For example: -%% ```<<"/home/localhost/user">>'''</p> - --type(nodeIdx() :: pos_integer()). -%% @type nodeIdx() = integer(). - --type(itemId() :: binary()). -%% @type itemId() = string(). - --type(subId() :: binary()). -%% @type subId() = string(). - - -%% @type payload() = [#xmlelement{} | #xmlcdata{}]. - -%% @type stanzaError() = #xmlelement{}. -%% Example: -%% Example: -%% ```{xmlelement, "error", -%% [{"code", Code}, {"type", Type}], -%% [{xmlelement, Condition, [{"xmlns", ?NS_STANZAS}], []}]}''' -%% @type pubsubIQResponse() = #xmlelement{}. -%% Example: -%% ```{xmlelement, "pubsub", -%% [{"xmlns", ?NS_PUBSUB_EVENT}], -%% [{xmlelement, "affiliations", [], -%% []}]}''' - --type(nodeOption() :: - {Option::atom(), - Value::binary() | [binary()] | boolean() | non_neg_integer() -}). - --type(nodeOptions() :: [NodeOption::mod_pubsub:nodeOption(),...]). - -%% @type nodeOption() = {Option, Value} -%% Option = atom() -%% Value = term(). -%% Example: -%% ```{deliver_payloads, true}''' - --type(subOption() :: - {Option::atom(), - Value::binary() | [binary()] | boolean() -}). - --type(subOptions() :: [SubOption::mod_pubsub:subOption(),...]). - -%% @type nodeType() = string(). -%% <p>The <tt>nodeType</tt> is a string containing the name of the PubSub -%% plugin to use to manage a given node. For example, it can be -%% <tt>"flat"</tt>, <tt>"hometree"</tt> or <tt>"blog"</tt>.</p> - -%% @type jid() = {jid, User, Server, Resource, LUser, LServer, LResource} -%% User = string() -%% Server = string() -%% Resource = string() -%% LUser = string() -%% LServer = string() -%% LResource = string(). - -%-type(ljid() :: {binary(), binary(), binary()}). -%% @type ljid() = {User, Server, Resource} -%% User = string() -%% Server = string() -%% Resource = string(). - --type(affiliation() :: 'none' - | 'owner' - | 'publisher' - %| 'publish-only' - | 'member' - | 'outcast' -). -%% @type affiliation() = 'none' | 'owner' | 'publisher' | 'publish-only' | 'member' | 'outcast'. - --type(subscription() :: 'none' - | 'pending' - | 'unconfigured' - | 'subscribed' -). -%% @type subscription() = 'none' | 'pending' | 'unconfigured' | 'subscribed'. - --type(accessModel() :: 'open' - | 'presence' - | 'roster' - | 'authorize' - | 'whitelist' -). -%% @type accessModel() = 'open' | 'presence' | 'roster' | 'authorize' | 'whitelist'. - -%% @type pubsubIndex() = {pubsub_index, Index, Last, Free} -%% Index = atom() -%% Last = integer() -%% Free = [integer()]. -%% internal pubsub index table --type(publishModel() :: 'publishers' - | 'subscribers' - | 'open' -). - - --record(pubsub_index, -{ - index :: atom(), - last :: mod_pubsub:nodeIdx(), - free :: [mod_pubsub:nodeIdx()] -}). - -%% @type pubsubNode() = {pubsub_node, NodeId, Id, Parents, Type, Owners, Options} -%% NodeId = {host() | ljid(), nodeId()} -%% Id = nodeIdx() -%% Parents = [nodeId()] -%% Type = nodeType() -%% Owners = [ljid()] -%% Options = [nodeOption()]. -%% <p>This is the format of the <tt>nodes</tt> table. The type of the table -%% is: <tt>set</tt>,<tt>ram/disc</tt>.</p> -%% <p>The <tt>Parents</tt> and <tt>type</tt> fields are indexed.</p> -%% <tt>id</tt> can be anything you want. --record(pubsub_node, -{ - nodeid ,%:: {Host::mod_pubsub:host(), NodeId::mod_pubsub:nodeId()}, - id ,%:: mod_pubsub:nodeIdx(), - parents = [] ,%:: [Parent_NodeId::mod_pubsub:nodeId()], - type = <<"flat">> ,%:: binary(), - owners = [] ,%:: [Owner::ljid(),...], - options = [] %:: mod_pubsub:nodeOptions() -}). - -%% @type pubsubState() = {pubsub_state, StateId, Items, Affiliation, Subscriptions} -%% StateId = {ljid(), nodeIdx()} -%% Items = [itemId()] -%% Affiliation = affiliation() -%% Subscriptions = [{subscription(), subId()}]. -%% <p>This is the format of the <tt>affiliations</tt> table. The type of the -%% table is: <tt>set</tt>,<tt>ram/disc</tt>.</p> - -%-record(pubsub_state, -% {stateid, items = [], affiliation = none, -% subscriptions = []}). --record(pubsub_state, -{ - stateid ,%:: {Entity::ljid(), NodeIdx::mod_pubsub:nodeIdx()}, - items = [] ,%:: [ItemId::mod_pubsub:itemId()], - affiliation = 'none' ,%:: mod_pubsub:affiliation(), - subscriptions = [] %:: [{mod_pubsub:subscription(), mod_pubsub:subId()}] -}). - -%% @type pubsubItem() = {pubsub_item, ItemId, Creation, Modification, Payload} -%% ItemId = {itemId(), nodeIdx()} -%% Creation = {now(), ljid()} -%% Modification = {now(), ljid()} -%% Payload = payload(). -%% <p>This is the format of the <tt>published items</tt> table. The type of the -%% table is: <tt>set</tt>,<tt>disc</tt>,<tt>fragmented</tt>.</p> -%-record(pubsub_item, -% {itemid, creation = {unknown, unknown}, -% modification = {unknown, unknown}, payload = []}). - --record(pubsub_item, -{ - itemid ,%:: {mod_pubsub:itemId(), mod_pubsub:nodeIdx()}, - creation = {unknown, unknown} ,%:: {erlang:timestamp(), ljid()}, - modification = {unknown, unknown} ,%:: {erlang:timestamp(), ljid()}, - payload = [] %:: mod_pubsub:payload() -}). - -%% @type pubsubSubscription() = {pubsub_subscription, SubId, Options} -%% SubId = subId() -%% Options = [nodeOption()]. -%% <p>This is the format of the <tt>subscriptions</tt> table. The type of the -%% table is: <tt>set</tt>,<tt>ram/disc</tt>.</p> -%-record(pubsub_subscription, {subid, options}). --record(pubsub_subscription, -{ - subid ,%:: mod_pubsub:subId(), - options %:: [] | mod_pubsub:subOptions() -}). - -%% @type pubsubLastItem() = {pubsub_last_item, NodeId, ItemId, Creation, Payload} -%% NodeId = nodeIdx() -%% ItemId = itemId() -%% Creation = {now(),ljid()} -%% Payload = payload(). -%% <p>This is the format of the <tt>last items</tt> table. it stores last item payload -%% for every node</p> -%-record(pubsub_last_item, -% {nodeid, itemid, creation, payload}). - --record(pubsub_last_item, -{ - nodeid ,%:: mod_pubsub:nodeIdx(), - itemid ,%:: mod_pubsub:itemId(), - creation ,%:: {erlang:timestamp(), ljid()}, - payload %:: mod_pubsub:payload() -}). |