def __init__(self, jidstr, password, jidresource=None, host=None, secure=jabber.client.SECURE_DEFAULT): zymb.sched.Agent.__init__(self) # Figure out the JID to use. self.jid = jabber.interface.JID(jidstr) if (jidresource): self.jid.setresource(jidresource) else: if (not self.jid.getresource()): self.jid.setresource('volity') self.password = password self.addhandler('start', self.startup) self.addhandler('end', self.finalize) self.addhandler('ready', self.startpresence) # Create the Jabber client agent. if (not secure): secure = jabber.client.SECURE_DEFAULT else: secure = secure.lower() self.conn = jabber.client.JabberAuthResource(self.jid, self.password, host=host, secure=secure) # Set up handlers for ourself and the Jabber agent. self.conn.addhandler('authresource', self.authed) self.conn.addhandler('end', self.stop) # Set up the presence service. pres = jabber.presence.PresenceService() pres.addhook(self.cappresencehook) self.conn.addservice(pres) # Set up the disco services. disco = jabber.disco.DiscoService() self.conn.addservice(disco) discoc = jabber.disco.DiscoClience() self.conn.addservice(discoc) # Set up the RPC services. rpc = jabber.rpc.RPCService(notfoundhandler=self.rpcnotfound) ops = jabber.rpc.SeparatorOpset() if (not isinstance(self, actor.Actor)): ops = ClientRPCWrapperOpset(ops) rpc.setopset(ops) self.conn.addservice(rpc) rpcc = jabber.rpc.RPCClience() self.conn.addservice(rpcc)
def __init__(self, jidstr, password, jidresource=None, host=None, secure=jabber.client.SECURE_DEFAULT): zymb.sched.Agent.__init__(self) # Figure out the JID to use. self.jid = jabber.interface.JID(jidstr) if (jidresource): self.jid.setresource(jidresource) else: if (not self.jid.getresource()): self.jid.setresource('volity') self.password = password self.addhandler('start', self.startup) self.addhandler('end', self.finalize) self.addhandler('ready', self.startpresence) # Create the Jabber client agent. if (not secure): secure = jabber.client.SECURE_DEFAULT else: secure = secure.lower() self.conn = jabber.client.JabberAuthResource(self.jid, self.password, host=host, secure=secure) # Set up handlers for ourself and the Jabber agent. self.conn.addhandler('authresource', self.authed) self.conn.addhandler('end', self.stop) # Set up the presence service. pres = jabber.presence.PresenceService(); pres.addhook(self.cappresencehook) self.conn.addservice(pres) # Set up the disco services. disco = jabber.disco.DiscoService() self.conn.addservice(disco) discoc = jabber.disco.DiscoClience() self.conn.addservice(discoc) # Set up the RPC services. rpc = jabber.rpc.RPCService(notfoundhandler=self.rpcnotfound) ops = jabber.rpc.SeparatorOpset() if (not isinstance(self, actor.Actor)): ops = ClientRPCWrapperOpset(ops) rpc.setopset(ops) self.conn.addservice(rpc) rpcc = jabber.rpc.RPCClience() self.conn.addservice(rpcc)
items.additem(selfjid, 'Send a disco items query.', 'discit') items.additem(selfjid, 'Shut down this server.', 'exit') return items disco.additems(None, itemfunc) # Add a DiscoClience to our Jabber connection. This handles outgoing # disco queries (and their incoming results). This will be used by the # "disco" and "discit" RPC calls -- see above. discoc = zymb.jabber.disco.DiscoClience() cl.addservice(discoc) # Add a RPCService to our Jabber connection. This handles incoming # RPC calls. rpc = zymb.jabber.rpc.RPCService() # A MyMethodOpset instance handles the calls when they arrive. rpc.setopset(MyMethodOpset()) cl.addservice(rpc) # We do not need an RPCClience, because we do not plan to make any outgoing # RPC calls. # Tell the agent to begin work. cl.start() # The main doing-stuff loop. while 1: try: res = zymb.sched.process(None) if (not res): break