Beispiel #1
0
 def __init__(self,
              ring,
              which='specific',
              name="",
              time_tag=None,
              other_obj=None,
              guarantee=True):
     SequenceBase.__init__(self, ring)
     self._ring = ring
     if which == 'specific':
         self.obj = _get(_bf.RingSequenceOpen(ring=ring.obj,
                                              name=name,
                                              guarantee=guarantee),
                         retarg=0)
     elif which == 'latest':
         self.obj = _get(_bf.RingSequenceOpenLatest(ring=ring.obj,
                                                    guarantee=guarantee),
                         retarg=0)
     elif which == 'earliest':
         self.obj = _get(_bf.RingSequenceOpenEarliest(ring=ring.obj,
                                                      guarantee=guarantee),
                         retarg=0)
     elif which == 'at':
         self.obj = _get(_bf.RingSequenceOpenAt(ring=ring.obj,
                                                time_tag=time_tag,
                                                guarantee=guarantee),
                         retarg=0)
     #elif which == 'next':
     #	self._check( self.lib.bfRingSequenceOpenNext(pointer(self.obj), other_obj) )
     else:
         raise ValueError(
             "Invalid 'which' parameter; must be one of: 'specific', 'latest', 'earliest'"
         )
Beispiel #2
0
	def __init__(self, ring, which='specific', name="",
	             other_obj=None, guarantee=True,
	             header_transform=None):
		SequenceBase.__init__(self, ring)
		self._ring = ring
		# A function for transforming the header before it's read
		self.header_transform = header_transform
		if which == 'specific':
			self.obj = _get(_bf.RingSequenceOpen(ring=ring.obj,
			                                     name=name, guarantee=guarantee), retarg=0)
		elif which == 'latest':
			self.obj = _get(_bf.RingSequenceOpenLatest(ring=ring.obj,
			                                           guarantee=guarantee), retarg=0)
		elif which == 'earliest':
			self.obj = _get(_bf.RingSequenceOpenEarliest(ring=ring.obj,
			                                             guarantee=guarantee), retarg=0)
		else:
			raise ValueError("Invalid 'which' parameter; must be one of: 'specific', 'latest', 'earliest'")
Beispiel #3
0
	def __init__(self, space='system', name=None, owner=None):
		self.space = space
		if name is None:
			name = 'ring_%i' % Ring.instance_count
			Ring.instance_count += 1
		self.obj = _get(_bf.RingCreate(name=name, space=_string2space(self.space)), retarg=0)
		self.owner = owner
		self.header_transform = None
		# If this is non-None, then the object is wrapping a base Ring instance
		self.base = None
Beispiel #4
0
 def init(self, iarray, oarray, axes=None, apply_fftshift=False):
     if isinstance(axes, int):
         axes = [axes]
     ndim = len(axes)
     if axes is not None:
         axes_type = ctypes.c_int * ndim
         axes = axes_type(*axes)
     self.workspace_size = _get(_bf.bfFftInit, self.obj,
                                asarray(iarray).as_BFarray(),
                                asarray(oarray).as_BFarray(), ndim, axes,
                                apply_fftshift)
Beispiel #5
0
	def init(self, iarray, oarray, axes=None):
		if isinstance(axes, int):
			axes = [axes]
		ndim = len(axes)
		if axes is not None:
			axes_type = ctypes.c_int*ndim
			axes = axes_type(*axes)
		self.workspace_size = _get(_bf.FftInit(
			self.obj,
			iarray=asarray(iarray).as_BFarray(),
			oarray=asarray(oarray).as_BFarray(),
			ndim=ndim, axes=axes))
Beispiel #6
0
	def __init__(self, fmt, sock, ring, nsrc, src0, max_payload_size,
	             buffer_ntime, slot_ntime, sequence_callback, core=None):
		self.obj = None
		if core is None:
			core = -1
		self.obj = _get(_bf.UdpCaptureCreate(format=fmt,
		                                     fd=sock.fileno(),
		                                     ring=ring.obj,
		                                     nsrc=nsrc,
		                                     src0=src0,
		                                     max_payload_size=max_payload_size,
		                                     buffer_ntime=buffer_ntime,
		                                     slot_ntime=slot_ntime,
		                                     sequence_callback=sequence_callback,
		                                     core=core), retarg=0)
Beispiel #7
0
 def __init__(self, ring, name="", time_tag=-1, header="", nringlet=1):
     SequenceBase.__init__(self, ring)
     # TODO: Allow header to be a string, buffer, or numpy array
     header_size = len(header)
     if isinstance(header, np.ndarray):
         header = header.ctypes.data
     #print "hdr:", header_size, type(header)
     offset_from_head = 0
     self.obj = _get(_bf.RingSequenceBegin(
         ring=ring.obj,
         name=name,
         time_tag=time_tag,
         header_size=header_size,
         header=header,
         nringlet=nringlet,
         offset_from_head=offset_from_head),
                     retarg=0)
Beispiel #8
0
	def __init__(self, ring, header, buf_nframe):
		SequenceBase.__init__(self, ring)
		self._header = header
		# This allows passing DataType instances instead of string types
		header['_tensor']['dtype'] = str(header['_tensor']['dtype'])
		header_str = json.dumps(header)
		header_size = len(header_str)
		gulp_nframe = header['gulp_nframe']
		tensor = self.tensor
		# **TODO: Consider moving this into bfRingSequenceBegin
		self.ring.resize(gulp_nframe*tensor['frame_nbyte'],
		                  buf_nframe*tensor['frame_nbyte'],
		                 tensor['nringlet'])
		offset_from_head = 0
		# TODO: How to allow time_tag to be optional? Probably need to plumb support through to backend.
		self.obj = _get(_bf.RingSequenceBegin(ring=ring.obj,
		                                      name=header['name'],
		                                      time_tag=header['time_tag'],
		                                      header_size=header_size,
		                                      header=header_str,
		                                      nringlet=tensor['nringlet'],
		                                      offset_from_head=offset_from_head), retarg=0)
Beispiel #9
0
	def get_workspace_size(self, idata, odata):
		return _get( _bf.FdmtExecute(self.obj,
		                             asarray(idata).as_BFarray(),
		                             asarray(odata).as_BFarray(),
		                        False, 0) )
Beispiel #10
0
 def mtu(self):
     return _get(_bf.bfAddressGetMTU, self.obj)
Beispiel #11
0
 def family(self):
     return _get(_bf.bfAddressGetFamily, self.obj)
Beispiel #12
0
 def writing_ended(self):
     return _get( _bf.bfRingWritingEnded, self.obj )
Beispiel #13
0
 def space(self):
     return _space2string(_get(_bf.bfRingGetSpace, self.obj))
Beispiel #14
0
 def _data_ptr(self):
     return _get(_bf.bfRingSpanGetData, self._base_obj)
Beispiel #15
0
 def address(self):
     buflen = 128
     buf = ctypes.create_string_buffer(buflen)
     return _get(_bf.AddressGetString(self.obj, buflen, buf))
Beispiel #16
0
 def offset(self):
     return _get(_bf.bfRingSpanGetOffset, self._base_obj)
Beispiel #17
0
 def nringlet(self):
     return _get(_bf.bfRingSpanGetNRinglet, self._base_obj)
Beispiel #18
0
 def name(self):
     return _get(_bf.bfRingSequenceGetName, self._base_obj)
Beispiel #19
0
 def name(self):
     return _get(_bf.bfRingGetName, self.obj)
Beispiel #20
0
 def time_tag(self):
     return _get(_bf.bfRingSequenceGetTimeTag, self._base_obj)
Beispiel #21
0
 def core(self):
     return _get(_bf.bfRingGetAffinity, self.obj)
Beispiel #22
0
 def nringlet(self):
     return _get(_bf.bfRingSequenceGetNRinglet, self._base_obj)
Beispiel #23
0
 def __init__(self, name):
     self.obj = _get(_bf.ProcLogCreate(name=name), retarg=0)
Beispiel #24
0
 def header_size(self):
     return _get(_bf.bfRingSequenceGetHeaderSize, self._base_obj)
Beispiel #25
0
 def port(self):
     return _get(_bf.bfAddressGetPort, self.obj)
Beispiel #26
0
 def _header_ptr(self):
     return _get(_bf.bfRingSequenceGetHeader, self._base_obj)
Beispiel #27
0
def get_core():
    return _get(_bf.bfAffinityGetCore)
Beispiel #28
0
 def size(self):
     return _get(_bf.bfRingSpanGetSize, self._base_obj)
Beispiel #29
0
 def __init__(self):
     self.obj = _get(_bf.FftCreate(), retarg=0)
Beispiel #30
0
 def stride(self):
     return _get(_bf.bfRingSpanGetStride, self._base_obj)