def read(self, whence='earliest', guarantee=True):
with ReadSequence(self, which=whence, guarantee=guarantee) as cur_seq:
while True:
yield cur_seq
cur_seq.increment()
#def _data(self):
# data_ptr = _get(self.lib.bfRingLockedGetData, self.obj)
# #data_ptr = c_void_p()
# #self._check( self.lib.bfRingLockedGetData(self.obj, pointer(data_ptr)) )
# #data_ptr = data_ptr.value
# #data_ptr = self.lib.bfRingLockedGetData(self.obj)
# if self.space == 'cuda':
# # TODO: See if can wrap this in something like PyCUDA's GPUArray
# # Ideally actual GPUArray, but it doesn't appear to support wrapping pointers
# return data_ptr
# span = self._total_span()
# stride = self._stride()
# nringlet = self._nringlet()
# #print "******", span, stride, nringlet
# BufferType = c_byte*(nringlet*stride)
# data_buffer_ptr = cast(data_ptr, POINTER(BufferType))
# data_buffer = data_buffer_ptr.contents
# data_array = np.ndarray(shape=(nringlet, span),
# strides=(stride, 1) if nringlet > 1 else None,
# buffer=data_buffer, dtype=np.uint8)
# return data_array
#def _contiguous_span(self):
# return self._get(BFsize, self.lib.bfRingLockedGetContiguousSpan, self.obj)
#def _total_span(self):
# return self._get(BFsize, self.lib.bfRingLockedGetTotalSpan, self.obj)
#def _nringlet(self):
# return self._get(BFsize, self.lib.bfRingLockedGetNRinglet, self.obj)
#def _stride(self):
# return self._get(BFsize, self.lib.bfRingLockedGetStride, self.obj)
评论列表
文章目录