def _start_networking(self): #print self, "_start_networking" # DEBUG super(ReceiveImageRouterItem, self)._start_networking() self._transfer_service_transmitter = self._service_manager.register_service( DataSendService.protocol) self._transfer_service = DataReceiveService(self.name, self._link_manager, self._transfer_service_transmitter)
class ReceiveImageRouterItem(RouterItem): def __init__(self, name, parent=None, enabled=True): self._transfer_service = None self._transfer_service_transmitter = None self._session_key = None super(ReceiveImageRouterItem, self).__init__(name, parent, enabled) def _start_networking(self): #print self, "_start_networking" # DEBUG super(ReceiveImageRouterItem, self)._start_networking() self._transfer_service_transmitter = self._service_manager.register_service( DataSendService.protocol) self._transfer_service = DataReceiveService(self.name, self._link_manager, self._transfer_service_transmitter) def _stop_networking(self): #print self, "_stop_networking" # DEBUG super(ReceiveImageRouterItem, self)._stop_networking() assert self._transfer_service is not None self._transfer_service.terminate() self._transfer_service = None def set_active_session(self, session_key): self._session_key = session_key def receive(self): try: session_key, data = \ self._transfer_service.receive_queue().get_nowait() except Queue.Empty: return None else: if self._session_key != session_key: return None else: return data