def __message_received(self, connection: ConnectionIdentifier, ixpFile: IXPFile): for identifier in self.__asyncListeners: if connection != self.__asyncListenersConnections[identifier]: continue if self.__asyncListenersFunctions[identifier] != ixpFile.get_network_function(): continue if self.__asyncListenersTypes[identifier] == self.__ASYNC_LISTENER_TYPE_IXP: self.__asyncListenersCallbacks[identifier](ixpFile) elif self.__asyncListenersTypes[identifier] == self.__ASYNC_LISTENER_TYPE_BOO: pass elif self.__asyncListenersTypes[identifier] == self.__ASYNC_LISTENER_TYPE_INT: pass elif self.__asyncListenersTypes[identifier] == self.__ASYNC_LISTENER_TYPE_STR: pass self.__asyncListeners.remove(identifier) del self.__asyncListenersCallbacks[identifier] del self.__asyncListenersConnections[identifier] del self.__asyncListenersFunctions[identifier] del self.__asyncListenersTypes[identifier] return for identifier in self.__listeners: if connection != self.__listenerConnections[identifier]: continue func = self.__listenerFunctions[identifier] if func == ixpFile.get_network_function(): self.__listenerCallbacks[identifier](ixpFile)
def ixp_request_async(self, connection: ConnectionIdentifier, request: IXPFile, callback): """ override of superclass method """ identifier = AsyncListenerIdentifier() self.__asyncListeners.append(identifier) self.__asyncListenersCallbacks[identifier] = callback self.__asyncListenersConnections[identifier] = connection self.__asyncListenersFunctions[identifier] = request.get_network_function() self.__asyncListenersTypes[identifier] = self.__ASYNC_LISTENER_TYPE_IXP socket = self.__connections[connection] # type: BufferedIXPSocket socket.send(request)