buffer

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotComplete = errors.New("socket: not complete event")
)

Functions

This section is empty.

Types

type Buffer

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

func CombineSlices

func CombineSlices(validated bool, buffers ...*Buffer) *Buffer

func NewBuffer

func NewBuffer() *Buffer

func (*Buffer) AppendDataEvent

func (r *Buffer) AppendDataEvent(event SocketDataBuffer)

AppendDataEvent insert the event to the event list following the order

func (*Buffer) AppendDetailEvent

func (r *Buffer) AppendDetailEvent(event SocketDataDetail)

func (*Buffer) Clean

func (r *Buffer) Clean()

func (*Buffer) DataLength

func (r *Buffer) DataLength() int

func (*Buffer) DataSize

func (r *Buffer) DataSize() int64

func (*Buffer) DeleteExpireEvents

func (r *Buffer) DeleteExpireEvents(expireDuration time.Duration) int

func (*Buffer) DetailLength

func (r *Buffer) DetailLength() int

func (*Buffer) Details

func (r *Buffer) Details() *list.List

func (*Buffer) DetectNotSendingLastPosition

func (r *Buffer) DetectNotSendingLastPosition() *Position

DetectNotSendingLastPosition detect the buffer contains not sending data: the BPF limited socket data count

func (*Buffer) FindFirstDataBuffer

func (r *Buffer) FindFirstDataBuffer(dataID uint64) SocketDataBuffer

func (*Buffer) FirstSocketBuffer

func (r *Buffer) FirstSocketBuffer() SocketDataBuffer

func (*Buffer) IsCurrentPacketReadFinished

func (r *Buffer) IsCurrentPacketReadFinished() bool

IsCurrentPacketReadFinished means to validate the current reading package is reading finished

func (*Buffer) LastSocketBuffer

func (r *Buffer) LastSocketBuffer() SocketDataBuffer

func (*Buffer) Len

func (r *Buffer) Len() int

func (*Buffer) Merge

func (r *Buffer) Merge(other *Buffer)

func (*Buffer) OffsetPosition

func (r *Buffer) OffsetPosition(offset int) *Position

func (*Buffer) Peek

func (r *Buffer) Peek(p []byte) (n int, err error)

func (*Buffer) Position

func (r *Buffer) Position() *Position

func (*Buffer) PrepareForReading

func (r *Buffer) PrepareForReading() bool

func (*Buffer) Read

func (r *Buffer) Read(p []byte) (n int, err error)

func (*Buffer) ReadFromCurrent

func (r *Buffer) ReadFromCurrent(p []byte) (element *list.Element, n int)

func (*Buffer) ReadUntilBufferFull

func (r *Buffer) ReadUntilBufferFull(data []byte) error

func (*Buffer) RemoveReadElements

func (r *Buffer) RemoveReadElements() bool

nolint

func (*Buffer) ResetForLoopReading

func (r *Buffer) ResetForLoopReading()

func (*Buffer) SkipCurrentElement

func (r *Buffer) SkipCurrentElement() bool

SkipCurrentElement skip current element in reader, if return true means have read finished

func (*Buffer) Slice

func (r *Buffer) Slice(validated bool, start, end *Position) *Buffer

type Position

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

func (*Position) Clone

func (p *Position) Clone() *Position

func (*Position) DataID

func (p *Position) DataID() uint64

func (*Position) Seq

func (p *Position) Seq() int

type SocketDataBuffer

type SocketDataBuffer interface {
	// GenerateConnectionID for identity the buffer belong which connection
	GenerateConnectionID() string
	// BufferData of the buffer
	BufferData() []byte
	// TotalSize of socket data, the data may exceed the size of the BufferData()
	TotalSize() uint64
	// Direction of the data, send or receive
	Direction() enums.SocketDataDirection
	// BufferStartPosition the buffer start index
	BufferStartPosition() int
	// BufferLen the buffer data length
	BufferLen() int
	// DataID data id of the buffer
	DataID() uint64
	// DataSequence the data sequence under same data id
	DataSequence() int
	// IsStart this buffer is start of the same data id
	IsStart() bool
	// IsFinished this buffer is finish of the same data id
	IsFinished() bool
	// HaveReduceDataAfterChunk check have reduced data after current buffer
	HaveReduceDataAfterChunk() bool

	// StartTime the data start timestamp
	StartTime() uint64
	// EndTime the data end timestamp
	EndTime() uint64
}

type SocketDataDetail

type SocketDataDetail interface {
	// DataID data id of the buffer
	DataID() uint64
}

type SocketDataEventLimited

type SocketDataEventLimited struct {
	SocketDataBuffer
	From int
	Size int
}

func (*SocketDataEventLimited) BufferData

func (s *SocketDataEventLimited) BufferData() []byte

func (*SocketDataEventLimited) BufferLen

func (s *SocketDataEventLimited) BufferLen() int

func (*SocketDataEventLimited) BufferStartPosition

func (s *SocketDataEventLimited) BufferStartPosition() int

Jump to

Keyboard shortcuts

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