reader

package
v1.5.7 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2023 License: MIT Imports: 7 Imported by: 0

README

Чтение шардов файла.

Пакет предоставляет реализацию интерфейса github.com/D3rus/go-library/file/Reader которая находится в файле reader.go.

Пакет предоставляет метод New(collection file.Collection, options ...file.ReaderOption), options - является опциональным аргументом, пакет предоставляет следующие методы опций:

  • WithAutoDelete - автоматически удаляет файл, после полного его прочтения, основывает свою логику на ошибке github.com/D3rus/go-library/file/ChangedNextShardError;
  • WithChangeShardRepeatRead - автоматически проводит повторное чтения данных, если была смена активного шарда файла, основывает свою логику на ошибке github.com/D3rus/go-library/file/ChangedNextShardError;
  • WithCompressLZ4 - выполняет декомпрессию данных алгоритмом LZ4;
  • WithReadBytesLength - записывает в метрику, кол. прочитанных байтов;
  • WithChangeShardErrorIgnore - игнорирует ошибку github.com/D3rus/go-library/file/ChangedNextShardError.

Важно. Опции будут примениться в том порядке, в котором они были переданы, из-за этого, такие опции как:

  • WithAutoDelete
  • WithChangeShardRepeatRead

должны быть переданы, до опции WithChangeShardErrorIgnore, для их нормальной работы.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(collection file.Collection, options ...file.ReaderOption) (file.Reader, error)

func WithAutoDelete

func WithAutoDelete() file.ReaderOption

func WithChangeShardErrorIgnore

func WithChangeShardErrorIgnore() file.ReaderOption

func WithChangeShardRepeatRead

func WithChangeShardRepeatRead() file.ReaderOption

func WithCompressLZ4

func WithCompressLZ4() file.ReaderOption

func WithReadBytesLength

func WithReadBytesLength(counter prometheus.Counter) file.ReaderOption

Types

type AutoDelete

type AutoDelete struct {
	file.Reader
	// contains filtered or unexported fields
}

func NewAutoDelete

func NewAutoDelete(reader file.Reader, lastFile *os.File) *AutoDelete

func (*AutoDelete) Read

func (reader *AutoDelete) Read(buffer []byte) (int, error)

type ChangeShardErrorIgnore

type ChangeShardErrorIgnore struct {
	file.Reader
}

func NewChangeShardErrorIgnore

func NewChangeShardErrorIgnore(reader file.Reader) *ChangeShardErrorIgnore

func (*ChangeShardErrorIgnore) Read

func (ignorer *ChangeShardErrorIgnore) Read(buffer []byte) (int, error)

type ChangeShardRepeatRead

type ChangeShardRepeatRead struct {
	file.Reader
}

func NewChangeShardRepeatRead

func NewChangeShardRepeatRead(reader file.Reader) *ChangeShardRepeatRead

func (*ChangeShardRepeatRead) Read

func (repeater *ChangeShardRepeatRead) Read(buffer []byte) (int, error)

type LZ4

type LZ4 struct {
	file.Reader
	// contains filtered or unexported fields
}

func NewLZ4

func NewLZ4(reader file.Reader) *LZ4

func (*LZ4) Read

func (lz4 *LZ4) Read(buffer []byte) (int, error)

type ReadBytesLength

type ReadBytesLength struct {
	file.Reader
	// contains filtered or unexported fields
}

func NewReadBytesLength

func NewReadBytesLength(reader file.Reader, counter prometheus.Counter) *ReadBytesLength

func (*ReadBytesLength) Read

func (metric *ReadBytesLength) Read(buffer []byte) (int, error)

type Reader

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

func NewReader

func NewReader(collection file.Collection) *Reader

func (*Reader) Close

func (reader *Reader) Close() error

func (*Reader) Collection

func (reader *Reader) Collection() file.Collection

func (*Reader) File

func (reader *Reader) File() (*os.File, error)

func (*Reader) Read

func (reader *Reader) Read(buffer []byte) (int, error)

Jump to

Keyboard shortcuts

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