diff options
author | vidon | 2004-10-21 10:08:36 +0000 |
---|---|---|
committer | vidon | 2004-10-21 10:08:36 +0000 |
commit | 354df4c977e0318a80ae9ea34be1e1aadc6a0030 (patch) | |
tree | 8d2c1b1f96a3ee9723253f782c0324e0945eb409 | |
parent | edecde03d204d275e82900f97bda51fa4273bddc (diff) | |
download | ivycpy-354df4c977e0318a80ae9ea34be1e1aadc6a0030.zip ivycpy-354df4c977e0318a80ae9ea34be1e1aadc6a0030.tar.gz ivycpy-354df4c977e0318a80ae9ea34be1e1aadc6a0030.tar.bz2 ivycpy-354df4c977e0318a80ae9ea34be1e1aadc6a0030.tar.xz |
Ajout dans classe Ivy :
sendMsg
getSelfIvyClient
getIvyClients
getIvyClientsByName
Définition de la classe Ivy.IvyClient :
getPtr
getName
getHost
getMessages
sendDirectMsg
sendError
-rw-r--r-- | ivy.py | 79 |
1 files changed, 70 insertions, 9 deletions
@@ -8,6 +8,27 @@ import threading #A la reception d'un message, on recherche l'objet python associéa import ivycpy class Ivy: + class IvyClient: + def __init__(self, ptr): + self.ptr=ptr + + def getPtr(self): + return self.ptr + + def getName(self): + return ivycpy.IvyGetApplicationName(self.ptr) + + def getHost(self): + return ivycpy.IvyGetApplicationHost(self.ptr) + + def getMessages(self): + return ivycpy.IvyGetApplicationMessages(self.ptr) + + def sendDirectMsg(self, id, message): + ivycpy.IvySendDirectMsg(self.ptr,id,message) + + def sendError(self, id, error): + ivycpy.IvySendError(self.ptr,id,error) class Domain: def __init__(self, domainaddr, port): @@ -30,6 +51,7 @@ class Ivy: def __init__(self, name, message, aIvyApplicationListener): self.lIvyApplicationlisteners=[] + self.dIvyClient={} self.addApplicationListener(aIvyApplicationListener) self.sReadyMessage=message self.sAppName=name @@ -58,14 +80,19 @@ class Ivy: except ValueError, x: IvyException(str(x))() - def _appliCallback(self, connected): + def _appliCallback(self, ivyclient, connected): #TODO #Suivant le type ( connexion ou deconnexion ) ##appeler _connect ou _disconnect + if not self.dIvyClient.has_key(ivyclient): + ivyClient=IvyClient(ivyclient) + self.dIvyClient[ivyclient]=ivyClient + else: + ivyClient=dIvyClient[ivyclient] if connected == ivycpy.IvyApplicationDisceonnected: - self._connect() + self._connect(ivyClient) else: - self._disconnect() + self._disconnect(ivyClient) def _connect(self, *arg): for listener in self.lIvyApplicationlisteners: @@ -75,13 +102,24 @@ class Ivy: for listener in self.lIvyApplicationlisteners: listener.disconnect(*arg) - def _die(self,*arg): - for listener in self.lIvyApplicationlisteners: - listener.die(*arg) + def _die(self,ivyclient): + try: + ivyClient=dIvyClient[ivyclient] + except KeyError: + ivyClient=IvyClient(ivyclient) + self.dIvyClient[ivyclient]=ivyClient - def _directMessage(*arg): for listener in self.lIvyApplicationlisteners: - listener.directMessage(*arg) + listener.die(ivyclient) + + def _directMessage(self, ivyclient, *arg): + try: + ivyClient=dIvyClient[ivyclient] + except KeyError: + ivyClient=IvyClient(ivyclient) + self.dIvyClient[ivyclient]=ivyClient + for listener in self.lIvyApplicationlisteners: + listener.directMessage(ivyClient,*arg) def bindMsg(self, regexp, aIvyMessageListener): id=ivycpy.IvyBindMsg(aIvyMessageListener.receive, @@ -98,7 +136,30 @@ class Ivy: else: IvyException("This expression not existed")() - + def sendMsg(self, message): + return ivycpy.IvySendMsg(message) + + def getSelfIvyClient(self): + return self.getIvyClientsByName(self.sAppName) + + def getIvyClients(self): + livyclient=ivycpy.IvyGetApplicationList().split() + lIvyClient=[] + for client in livyclient: + print "client %s"%client + ivyClient=self.getIvyClientsByName(client) + lIvyClient.append(ivyClient) + return lIvyClient + + def getIvyClientsByName(self, name): + ivyclient=ivycpy.IvyGetApplication(name) + try: + ivyClient=dIvyClient[ivyclient] + except KeyError: + ivyClient=IvyClient(ivyclient) + self.dIvyClient[ivyclient]=ivyClient + return ivyClient + # public interface IvyApplicationListener extends java.util.EventListener { # /** # * invoked when a Ivy Client has joined the bus |