bio

package
v0.0.0-...-bc08256 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SlotSize = 8
)

Variables

View Source
var (
	ErrDeviceWriteback   = logex.Define("write back is not allowed")
	ErrDeviceBufOverflow = logex.Define("buffer overflowed")
)
View Source
var (
	ErrFileClosed        = logex.Define("file is closed")
	ErrFileInvalidBit    = logex.Define("invalid bit")
	ErrFileInvalidOffset = logex.Define("invalid offset")
)
View Source
var (
	ErrShortRead        = logex.Define("short read")
	ErrShortWrite       = logex.Define("short write")
	ErrReaderBufferFull = logex.Define("reader buffer is full")
	ErrWriterBufferFull = logex.Define("reader writer is full")
)

Functions

func ReadAt

func ReadAt(r io.ReaderAt, offset int64, d Diskable) error

func ReadDiskable

func ReadDiskable(raw RawDiskerReader, addr int64, disk Diskable) error

func WriteAt

func WriteAt(w io.WriterAt, offset int64, d Diskable) error

Types

type Device

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

buffered writer

func NewDevice

func NewDevice(raw RawDisker, offset int64) *Device

func (*Device) Buffered

func (d *Device) Buffered() int

func (*Device) Bytes

func (d *Device) Bytes() []byte

func (*Device) Flush

func (d *Device) Flush() error

func (*Device) FlushSize

func (d *Device) FlushSize() int64

func (*Device) GetWriter

func (d *Device) GetWriter(off int64, size int) *Writer

TODO: add lock for writer

func (*Device) Len

func (d *Device) Len() int64

func (*Device) Offset

func (d *Device) Offset() int64

func (*Device) Raw

func (d *Device) Raw() RawDisker

func (*Device) ReadAt

func (d *Device) ReadAt(b []byte, off int64) (int, error)

func (*Device) Write

func (d *Device) Write(b []byte) (int, error)

write to buffer

func (*Device) WriteAt

func (d *Device) WriteAt(b []byte, off int64) (int, error)

type DeviceMgr

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

func NewDeviceMgr

func NewDeviceMgr(f *flow.Flow, d *Device, setOff *int64) *DeviceMgr

func (*DeviceMgr) Close

func (d *DeviceMgr) Close()

func (*DeviceMgr) Done

func (d *DeviceMgr) Done()

func (*DeviceMgr) Flush

func (d *DeviceMgr) Flush() error

func (*DeviceMgr) GetFlushNotify

func (d *DeviceMgr) GetFlushNotify() chan struct{}

when client received signal, it's time to Done writing and try GetFlushNotify() to get a new one

func (*DeviceMgr) Malloc

func (d *DeviceMgr) Malloc(n int) int64

func (*DeviceMgr) MallocWriter

func (d *DeviceMgr) MallocWriter(n int) *DeviceWriter

func (*DeviceMgr) Raw

func (d *DeviceMgr) Raw() RawDisker

func (*DeviceMgr) ReadAt

func (d *DeviceMgr) ReadAt(b []byte, off int64) (int, error)

func (*DeviceMgr) WriteDisk

func (d *DeviceMgr) WriteDisk(off int64, disk Diskable)

type DeviceWriter

type DeviceWriter struct {
	*Writer
	// contains filtered or unexported fields
}

func (*DeviceWriter) Offset

func (d *DeviceWriter) Offset() int64

type File

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

func NewFile

func NewFile(path string) (*File, error)

func NewFileEx

func NewFileEx(root string, bit uint) (*File, error)

func (*File) Close

func (f *File) Close() error

func (*File) Delete

func (f *File) Delete(close bool) error

func (*File) ReadAt

func (f *File) ReadAt(b []byte, off int64) (n int, err error)

func (*File) WriteAt

func (f *File) WriteAt(b []byte, off int64) (n int, err error)

type Reader

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

func NewReader

func NewReader(data []byte) *Reader

func (*Reader) Available

func (r *Reader) Available() int

func (*Reader) Byte

func (r *Reader) Byte(n int) []byte

func (*Reader) Check

func (r *Reader) Check(d Diskable, n int) error

func (*Reader) Int32

func (r *Reader) Int32() int32

func (*Reader) Int64

func (r *Reader) Int64() int64

func (*Reader) Offset

func (r *Reader) Offset() int

func (*Reader) ReadDisk

func (r *Reader) ReadDisk(d Diskable) error

func (*Reader) Skip

func (r *Reader) Skip(n int)

func (*Reader) Verify

func (r *Reader) Verify(b []byte) bool

type Writer

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

func NewWriter

func NewWriter(data []byte) *Writer

func (*Writer) Available

func (w *Writer) Available() int

func (*Writer) Byte

func (w *Writer) Byte(b []byte) int

func (*Writer) Int32

func (w *Writer) Int32(n int32)

func (*Writer) Int64

func (w *Writer) Int64(n int64)

func (*Writer) Skip

func (w *Writer) Skip(n int)

func (*Writer) WriteDisk

func (w *Writer) WriteDisk(d Diskable) error

Jump to

Keyboard shortcuts

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