Monday, November 08, 2010 at 12:06 AM.
system.verbs.builtins.tcp.im.builtinDrivers.jabber.code.handlers.iqRoster
on iqRoster (connection, mesAdr, iq, query ) {
<<Changes
<<5/14/02; 1:51:34 PM by JB
<<Changelog created.
<<See http://docs.jabber.org/jpg/html/main.html#REFIQROSTER.
<<When you first log in, you must ask for your roster, which comes back as an iq with a query xmlns of "jabber:iq:roster". This message gives you all your subscriptions. This handler takes those subscriptions and makes a note of them in the presence table of the connection.
if not defined ( connection^.presence ) {
new ( tableType, @connection^.presence )};
for item in xml.getAddressList(query, "item") {
try {
local (jId = tcp.im.builtinDrivers.jabber.code.parseJabberId ( xml.getAttributeValue ( item, "jid" ) ), presenceAdr );
presenceAdr = @connection^.presence[jId[1] + "@" + jId[2]];
if not defined ( presenceAdr^ ) { // paranoia, this should never be false, but if there is data there, I don't want to whack it
new (tableType, presenceAdr);
presenceAdr^.unknown = true}}}} // don't yet know the status
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.