github.com/dshulyak/uring@v0.0.0-20210209113719-1b2ec51f1542/fixed/buffer.go (about)

     1  package fixed
     2  
     3  // Buffer ...
     4  type Buffer struct {
     5  	// if single iovec is splitted between several buffers - index and poolIndex will have
     6  	// different values.
     7  	// index refers to bufIndex in io_uring.
     8  	// poolIndex refers to the index in local queue.
     9  	index, poolIndex int
    10  	B                []byte
    11  }
    12  
    13  // Index returns bufIndex that must be used for fixed write io_uring operations.
    14  func (b *Buffer) Index() uint16 {
    15  	return uint16(b.index)
    16  }
    17  
    18  // Len ...
    19  func (b *Buffer) Len() uint64 {
    20  	return uint64(len(b.B))
    21  }
    22  
    23  // Base returns pointer to the first byte of the buffer.
    24  func (b *Buffer) Base() *byte {
    25  	return &b.B[0]
    26  }
    27  
    28  // Bytes ...
    29  func (b *Buffer) Bytes() []byte {
    30  	return b.B
    31  }