collectorbatch

package
v0.0.2-debug Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrBlockDataOutOfLimit = errors.New("block data out of limit")

Functions

This section is empty.

Types

type BatchInfo

type BatchInfo struct {
	Kind        LimitKind
	BlocksCount uint
	Len         uint
	Size        uint
	Sources     map[string]*SrcInfo
}

type CBatch

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

func NewBatch

func NewBatch(
	ctx context.Context,
	chName string,
	limits Limits,
	calcBatchSize func(b *executordto.Batch) (uint, error),
) *CBatch

func (*CBatch) AddIfInLimit

func (b *CBatch) AddIfInLimit(chName string, d *collectordto.BlockData) (bool, error)

func (*CBatch) Deadline

func (b *CBatch) Deadline() <-chan time.Time

func (*CBatch) GetBatchForExec

func (b *CBatch) GetBatchForExec() (*executordto.Batch, *BatchInfo)

type LimitKind

type LimitKind string
const (
	NoneLimitKind        LimitKind = "None"
	BlocksCountLimitKind LimitKind = "BlocksCountLimit"
	TimeoutLimitKind     LimitKind = "TimeoutLimit"
	LenLimitKind         LimitKind = "LenLimit"
	SizeLimitKind        LimitKind = "SizeLimit"
)

type Limits

type Limits struct {
	BlocksCountLimit uint
	TimeoutLimit     time.Duration
	LenLimit         uint
	SizeLimit        uint
}

type SrcInfo

type SrcInfo struct {
	LastBlockNum uint64
	ItemsCount   uint
}

Jump to

Keyboard shortcuts

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