Documentation ¶
Overview ¶
Package ringbuffer contains bindings of DPDK ring library.
Index ¶
- func AlignCapacity(capacity int, opts ...int) int
- type ConsumerMode
- type ProducerMode
- type Ring
- func (r *Ring) Capacity() int
- func (r *Ring) Close() error
- func (r *Ring) CountAvailable() int
- func (r *Ring) CountInUse() int
- func (r *Ring) Dequeue(objs interface{}) (nDequeued int)
- func (r *Ring) Enqueue(objs interface{}) (nEnqueued int)
- func (r *Ring) Ptr() unsafe.Pointer
- func (r *Ring) String() string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AlignCapacity ¶
AlignCapacity returns an acceptable capacity for Ring. It takes up to three parameters:
capacity: input capacity min: minimum capacity; default is 64. dflt: default capacity, if input is less than minimum; default is same as min.
If input capacity is less than minimum, use dflt. Then, adjust to next power of 2.
Types ¶
type ConsumerMode ¶
type ConsumerMode int
ConsumerMode indicates ring consumer synchronization mode.
const ( ConsumerMulti ConsumerMode = 0 ConsumerSingle ConsumerMode = C.RING_F_SC_DEQ ConsumerRts ConsumerMode = C.RING_F_MC_RTS_DEQ ConsumerCts ConsumerMode = C.RING_F_MC_HTS_DEQ )
Ring consumer synchronzation modes.
type ProducerMode ¶
type ProducerMode int
ProducerMode indicates ring producer synchronization mode.
const ( ProducerMulti ProducerMode = 0 ProducerSingle ProducerMode = C.RING_F_SP_ENQ ProducerRts ProducerMode = C.RING_F_MP_RTS_ENQ ProducerHts ProducerMode = C.RING_F_MP_HTS_ENQ )
Ring producer synchronization modes.
type Ring ¶
type Ring C.struct_rte_ring
Ring represents a FIFO ring buffer.
func New ¶
func New(capacity int, socket eal.NumaSocket, producerMode ProducerMode, consumerMode ConsumerMode) (r *Ring, e error)
New creates a Ring.
func (*Ring) CountAvailable ¶
CountAvailable returns free space.
func (*Ring) Dequeue ¶
Dequeue dequeues several objects from a ring. objs should be a slice of C void* pointers.
Click to show internal directories.
Click to hide internal directories.