ringbuffer

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2022 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultBufferSize ring-buffer初始化时的大小
	DefaultBufferSize = 1024 // 1KB

)

Variables

View Source
var EmptyRingBuffer = New(0)

EmptyRingBuffer 空ring-buffer

View Source
var ErrIsEmpty = errors.New("ring-buffer is empty")

Functions

This section is empty.

Types

type RingBuffer

type RingBuffer struct {
	// contains filtered or unexported fields
}

RingBuffer 用户态环形缓冲区

func New

func New(size int) *RingBuffer

New returns a new RingBuffer whose buffer has the given size.

func (*RingBuffer) ByteBuffer

func (rb *RingBuffer) ByteBuffer() *bytebuffer.ByteBuffer

ByteBuffer 以ByteBuffer的形式返回环形缓冲区中所有可读字节,不移动r指针

func (*RingBuffer) Cap

func (rb *RingBuffer) Cap() int

Cap 返回环形缓冲区底层buf的容量cap()

func (*RingBuffer) Discard

func (rb *RingBuffer) Discard(n int)

Discard 通过移动r指针跳过环形缓冲区中的n个字节

func (*RingBuffer) Free

func (rb *RingBuffer) Free() int

Free 返回环形缓冲区剩余可写入的长度

func (*RingBuffer) IsEmpty

func (rb *RingBuffer) IsEmpty() bool

IsEmpty 返回环形缓冲区是否为空

func (*RingBuffer) IsFull

func (rb *RingBuffer) IsFull() bool

IsFull 返回环形缓冲区是否已满

func (*RingBuffer) Len

func (rb *RingBuffer) Len() int

Len 返回环形缓冲区底层buf的长度len()

func (*RingBuffer) Length

func (rb *RingBuffer) Length() int

Length 返回环形缓冲区中可读取的字节长度

func (*RingBuffer) Peek

func (rb *RingBuffer) Peek(n int) (head []byte, tail []byte)

Peek 返回环形缓冲区中的n个byte,但是不移动RingBuffer的r指针

func (*RingBuffer) PeekAll

func (rb *RingBuffer) PeekAll() (head []byte, tail []byte)

PeekAll 返回环形缓冲区中的所有字节,但是不移动RingBuffer的r指针

func (*RingBuffer) Read

func (rb *RingBuffer) Read(p []byte) (n int, err error)

Read 从环形缓冲区中读取len(p)个字节到p中,同时移动r指针

func (*RingBuffer) ReadByte

func (rb *RingBuffer) ReadByte() (b byte, err error)

ReadByte 读取环形缓冲区中一个字节,同时移动r指针

func (*RingBuffer) Reset

func (rb *RingBuffer) Reset()

Reset 重置环形缓冲区

func (*RingBuffer) WithByteBuffer

func (rb *RingBuffer) WithByteBuffer(b []byte) *bytebuffer.ByteBuffer

WithByteBuffer 返回一个ByteBuffer,内部字节为:环形缓冲区中所有可读数据+给定字节切片b

func (*RingBuffer) Write

func (rb *RingBuffer) Write(p []byte) (n int, err error)

Write 向环形缓冲区中写入len(p)个字节,同时移动w指针

func (*RingBuffer) WriteByte

func (rb *RingBuffer) WriteByte(c byte) error

WriteByte 向环形缓冲区中写入一个字节,同时移动w指针

func (*RingBuffer) WriteString

func (rb *RingBuffer) WriteString(s string) (int, error)

WriteString 是 Write 的封装,以字符串的方式写入

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL