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.