buffer

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2020 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package buffer 无拷贝IO缓冲区实现

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrBufNil    = errors.New("buf is nil")
	ErrReaderNil = errors.New("reader is nil")
	ErrNotEnough = errors.New("not enough")
	ErrOverSize  = errors.New("oversize")
	ErrLess0     = errors.New("less than 0")
)

io buffer errors

Functions

This section is empty.

Types

type IOBuffer

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

IOBuffer 不是线程安全的

func NewIOBuffer

func NewIOBuffer(reader io.Reader, length int) (*IOBuffer, error)

NewIOBuffer 构造一个缓冲区 length 必须大于0, 否则返回 ErrLess0 错误

func (*IOBuffer) DefaultSize

func (b *IOBuffer) DefaultSize() int

DefaultSize 创建时的默认大小

func (*IOBuffer) Len

func (b *IOBuffer) Len() int

Len 当前缓冲区内容的长度

func (*IOBuffer) MoveStartPtr

func (b *IOBuffer) MoveStartPtr(n int) error

MoveStartPtr 修改缓冲区内容起始指针

func (*IOBuffer) Read

func (b *IOBuffer) Read(offset, n int) ([]byte, error)

Read 舍弃offset个字段,读取n个字段

func (*IOBuffer) ReadFromReader

func (b *IOBuffer) ReadFromReader() (int, error)

ReadFromReader 从reader里面读取数据,如果reader阻塞,会发生阻塞

func (*IOBuffer) RemainSize

func (b *IOBuffer) RemainSize() int

RemainSize 当前剩余大小

func (*IOBuffer) Seek

func (b *IOBuffer) Seek(n int) ([]byte, error)

Seek 返回n个字节,而不产生移位

func (*IOBuffer) SeekAll

func (b *IOBuffer) SeekAll() ([]byte, error)

SeekAll 返回所有字节,而不产生移位

func (*IOBuffer) SetBanAutoResize

func (b *IOBuffer) SetBanAutoResize(value bool)

SetBanAutoResize 设置缓冲区是否可以根据需求自动调整大小

func (*IOBuffer) SetLogger

func (b *IOBuffer) SetLogger(l *log.Logger)

SetLogger set the IOBuffer logger

func (*IOBuffer) TotalSize

func (b *IOBuffer) TotalSize() int

TotalSize 总大小 如果该 IOBuffer 经过了自动扩容, 那么其可能会在将来自动缩容, 这两种行为都会导致 TotalSize 的值发生变化, 如果你希望获得这个 IOBuffer 稳定的大小, 你应该使用 DefaultSize()

func (*IOBuffer) Write

func (b *IOBuffer) Write(src []byte) error

Write 写入一段数据,要么全部成功,要么全部不成功

Jump to

Keyboard shortcuts

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