Module mod_roster [erl svg]

Roster management (Mnesia storage).

Behaviours: gen_mod.

Description

Roster management (Mnesia storage).

Includes support for XEP-0237: Roster Versioning. The roster versioning follows an all-or-nothing strategy: - If the version supplied by the client is the latest, return an empty response. - If not, return the entire new roster (with updated version string). Roster version is a hash digest of the entire roster. No additional data is stored in DB.

Function Index

build_contact_jid_td/1*
convert_askmessage_to_exmpp/1*
convert_jid_to_exmpp/1*
convert_name_to_exmpp/1*
convert_to_binary/1*
fill_subscription_lists/3*
get_in_pending_subscriptions/3
get_jid_info/4
get_roster/2*
get_subscription_lists/3
get_user_roster/2
get_versioning_feature/2
in_auto_reply/3*
in_state_change/3*
in_subscription/6
item_to_xml/1
out_state_change/3*
out_subscription/4
process_iq/3
process_iq_get/3*Load roster from DB only if neccesary.
process_iq_set/3*
process_item_attrs/2*
process_item_attrs_ws/2*
process_item_els/2*
process_item_set/3*
process_item_set_t/3*
process_local_iq/3
process_subscription/6*
push_item/4*
push_item/5*
push_item/6*
push_item_version/5*Roster push, calculate and include the version attribute.
remove_user/2
roster_hash/1*
roster_version/2*
roster_version_on_db/1*
roster_versioning_enabled/1
send_unsubscribing_presence/2*
send_unsubscription_to_rosteritems/2*
set_items/3
start/2
stop/1
storageroster_to_roster/2*
try_process_iq_set/3*
update_table/2*
us_to_list/1*
user_roster/4*
user_roster_item_parse_query/4*
user_roster_parse_query/4*
user_roster_subscribe_jid/3*
webadmin_page/3
webadmin_user/4

Function Details

build_contact_jid_td/1 *

build_contact_jid_td(X1::JID) -> Result

convert_askmessage_to_exmpp/1 *

convert_askmessage_to_exmpp(AM) -> any()

convert_jid_to_exmpp/1 *

convert_jid_to_exmpp(V) -> any()

convert_name_to_exmpp/1 *

convert_name_to_exmpp(N) -> any()

convert_to_binary/1 *

convert_to_binary(A) -> any()

fill_subscription_lists/3 *

fill_subscription_lists(Is::Items, F, T) -> {New_F, New_T}

get_in_pending_subscriptions/3

get_in_pending_subscriptions(Ls, User, Server) -> New_Ls

get_jid_info/4

get_jid_info(X1::Ignored, User, Server, JID) -> {Subscription, Groups}

get_roster/2 *

get_roster(LUser, LServer) -> any()

get_subscription_lists/3

get_subscription_lists(X1::Ignored, User, Server) -> Subscription_Lists

get_user_roster/2

get_user_roster(Acc, X2::US) -> New_Acc

get_versioning_feature/2

get_versioning_feature(Acc, Host) -> any()

in_auto_reply/3 *

in_auto_reply(X1, X2, X3) -> any()

in_state_change/3 *

in_state_change(X1, X2, X3) -> any()

in_subscription/6

in_subscription(X1::Ignored, User, Server, JID, Type, Reason) -> bool()

item_to_xml/1

item_to_xml(Item) -> XML

out_state_change/3 *

out_state_change(X1, X2, X3) -> any()

out_subscription/4

out_subscription(User, Server, JID, Type) -> bool()

process_iq/3

process_iq(From, To, IQ_Rec) -> IQ_Result

process_iq_get/3 *

process_iq_get(From, To, IQ_Rec) -> IQ_Result

Load roster from DB only if neccesary. It is neccesary if - roster versioning is disabled in server OR - roster versioning is not used by the client OR - roster versioning is used by server and client BUT the server isn't storing version IDs on db OR - the roster version from client don't match current version

process_iq_set/3 *

process_iq_set(From, To, Iq::IQ_Rec) -> IQ_Result

process_item_attrs/2 *

process_item_attrs(Item, Attrs) -> New_Item

process_item_attrs_ws/2 *

process_item_attrs_ws(Item, Attrs) -> New_Item

process_item_els/2 *

process_item_els(Item, Els) -> New_Item

process_item_set/3 *

process_item_set(From, To, Xmlel::El) -> ok

process_item_set_t/3 *

process_item_set_t(LUser, LServer, Xmlel::El) -> term()

process_local_iq/3

process_local_iq(From, To, Iq::IQ_Rec) -> IQ_Result

process_subscription/6 *

process_subscription(Direction, User, Server, JID1, Type, Reason) -> bool()

push_item/4 *

push_item(User, Server, From, Item) -> term()

push_item/5 *

push_item(User, Server, Resource, From, Item) -> term()

To do

push_item/6 *

push_item(User, Server, Resource, From, Item, RosterVersion) -> any()

push_item_version/5 *

push_item_version(Server, User, From, Item, RosterVersion) -> any()

Roster push, calculate and include the version attribute.

To do

remove_user/2

remove_user(User, Server) -> term()

roster_hash/1 *

roster_hash(Items) -> any()

roster_version/2 *

roster_version(LServer, LUser) -> any()

roster_version_on_db/1 *

roster_version_on_db(Host::binary()) -> true | false

roster_versioning_enabled/1

roster_versioning_enabled(Host::binary()) -> true | false

send_unsubscribing_presence/2 *

send_unsubscribing_presence(From::jid(), Item::roster()) -> ok

send_unsubscription_to_rosteritems/2 *

send_unsubscription_to_rosteritems(LUser, LServer) -> any()

set_items/3

set_items(User, Server, Xmlel::El) -> term()

start/2

start(Host, Opts) -> term()

stop/1

stop(Host) -> term()

storageroster_to_roster/2 *

storageroster_to_roster(Rosteritem, Rostergroups) -> any()

try_process_iq_set/3 *

try_process_iq_set(From, To, IQ) -> any()

update_table/2 *

update_table(HostB, Storage) -> any()

us_to_list/1 *

us_to_list(X1::{User, Server}) -> string()

user_roster/4 *

user_roster(User, Server, Query, Lang) -> Result

user_roster_item_parse_query/4 *

user_roster_item_parse_query(User, Server, Items, Query) -> term()

user_roster_parse_query/4 *

user_roster_parse_query(User, Server, Items, Query) -> ok | nothing | error

user_roster_subscribe_jid/3 *

user_roster_subscribe_jid(User, Server, JID) -> term()

webadmin_page/3

webadmin_page(Acc, Host, Request) -> {stop, Result} | Acc

webadmin_user/4

webadmin_user(Acc, User, Server, Lang) -> New_Acc


Generated by EDoc, May 23 2012, 07:15:15.