Source code for riaps.run.cltPort

'''
Client port class
Created on Oct 10, 2016

@author: riaps
'''
import zmq
from .port import Port,PortInfo,DuplexConnPort
from riaps.utils.config import Config
from zmq.error import ZMQError
# from .part import Part
# from .actor import Actor


[docs]class CltPort(DuplexConnPort): ''' Client port is to access a server. Has a request and a response message type, and uses a REQ socket. ''' def __init__(self, parentComponent, portName, portSpec): ''' Initialize the client port object. ''' super().__init__(parentComponent, portName, portSpec) self.info = None
[docs] def setup(self): ''' Set up the port ''' pass
[docs] def setupSocket(self, owner): ''' Set up the socket of the port. Return a tuple suitable for querying the discovery service for the publishers ''' return self.setupConnSocket(owner,zmq.REQ,'clt')
[docs] def closeSocket(self): self.closeConnSocket()
[docs] def reset(self): self.resetConnSocket(zmq.REQ)
[docs] def getSocket(self): ''' Return the socket of port ''' return self.socket
[docs] def inSocket(self): ''' Return False because the socket is not used as direct input (client has to recv explicitly) ''' return False
[docs] def recv_pyobj(self): if len(self.servers) == 0: return None else: return self.port_recv(True)
[docs] def send_pyobj(self, msg): if len(self.servers) == 0: return False else: return self.port_send(msg, True)
[docs] def recv(self): if len(self.servers) == 0: return None else: return self.port_recv(False)
[docs] def send(self, msg): if len(self.servers) == 0: return False else: return self.port_send(msg, False)
[docs] def getInfo(self): ''' Retrieve relevant information about this port ''' return self.info