def __init__(self, name, PortTypeClass, PortTransferType=TRANSFER_TYPE, logger=None, noData=None ):
self.name = name
self.logger = logger
self.PortType = PortTypeClass
self.PortTransferType=PortTransferType
self.outConnections = {} # key=connectionId, value=port
self.stats = OutStats(self.name, PortTransferType )
self.port_lock = threading.Lock()
self.sriDict = {} # key=streamID value=SriMapStruct
self.filterTable = []
if noData==None:
self.noData = []
else:
self.noData = noData
# Determine maximum transfer size in advance
self.byteSize = 1
if self.PortTransferType:
self.byteSize = struct.calcsize(PortTransferType)
# Multiply by some number < 1 to leave some margin for the CORBA header
self.maxSamplesPerPush = int(MAX_TRANSFER_BYTES*.9)/self.byteSize
# Make sure maxSamplesPerPush is even so that complex data case is handled properly
if self.maxSamplesPerPush%2 != 0:
self.maxSamplesPerPush = self.maxSamplesPerPush - 1
if self.logger == None:
self.logger = logging.getLogger("redhawk.bulkio.outport."+name)
if self.logger:
self.logger.debug('bulkio::OutPort CTOR port:' + str(self.name))
评论列表
文章目录