store

package
v0.0.0-...-cb24bb1 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2023 License: MPL-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PrevPageOffset         = 0
	PrevPageSize           = uint16(unsafe.Sizeof(uint32(0)))
	NextPageOffset         = PrevPageSize
	NextPageSize           = uint16(unsafe.Sizeof(uint32(0)))
	NextFreePositionOffset = NextPageOffset + NextPageSize
	NextFreePositionSize   = uint16(unsafe.Sizeof(uint32(0)))
	//LastValueWritenOffset  = NextFreePositionOffset + NextFreePositionSize
	//LastValueWrittenSize   = uint16(unsafe.Sizeof(uint32(0)))
	HeaderSize = NextFreePositionOffset + NextFreePositionSize //LastValueWritenOffset + LastValueWrittenSize
)
View Source
const (
	IndexRootPageOffset        = 0
	IndexRootPageSize          = uint16(unsafe.Sizeof(uint32(0)))
	StoreHeadPageOffset        = IndexRootPageOffset + IndexRootPageSize
	StoreHeadPageSize          = uint16(unsafe.Sizeof(uint32(0)))
	StoreTailPageOffset        = StoreHeadPageOffset + StoreHeadPageSize
	StoreTailPageSize          = uint16(unsafe.Sizeof(uint32(0)))
	NextKeyOffset              = StoreTailPageOffset + StoreTailPageSize
	NextKeySize                = uint16(unsafe.Sizeof(uint32(0)))
	LastValueWrittenPageOffset = NextKeyOffset + NextKeySize
	LastValueWrittenPageSize   = uint16(unsafe.Sizeof(uint32(0)))
	LastValueWrittenPosOffset  = LastValueWrittenPageOffset + LastValueWrittenPageSize
	LastValueWrittenPosSize    = uint16(unsafe.Sizeof(uint16(0)))
	StreamHeader               = LastValueWrittenPosOffset + LastValueWrittenPosSize
)

Variables

This section is empty.

Functions

func Serialise

func Serialise(r StoreItem) []byte

func WriteHeader

func WriteHeader(p *data.Page, header StoreItem, offset uint16)

Types

type Node

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

func InititaliseNode

func InititaliseNode(p *data.Page) *Node

func NewNode

func NewNode(page *data.Page) *Node

func (*Node) CloseNode

func (n *Node) CloseNode()

func (*Node) Next

func (n *Node) Next() uint32

func (*Node) NextFreePosition

func (n *Node) NextFreePosition() uint16

func (*Node) Previous

func (n *Node) Previous() uint32

func (*Node) Read

func (n *Node) Read(offset uint16, length uint32, buffer []byte) (uint32, error)

func (*Node) SetNext

func (n *Node) SetNext(next uint32)

func (*Node) SetNextFreePosition

func (n *Node) SetNextFreePosition(nextFreePos uint16)

func (*Node) SetPrevious

func (n *Node) SetPrevious(previous uint32)

func (*Node) SpaceRemaining

func (n *Node) SpaceRemaining() uint16

func (*Node) Write

func (n *Node) Write(data []byte) (uint16, error)

type Record

type Record struct {
	Data []byte
	Key  uint32
}

type StoreItem

type StoreItem struct {
	Key             uint32
	Length          uint32
	NextItemPageNum uint32
	NextItemOffset  uint16
}

func Deserialise

func Deserialise(enc []byte) StoreItem

func NewStoreItem

func NewStoreItem(key uint32, length uint32, nextItemPageNum uint32, nextItemOffset uint16) StoreItem

func ReadHeader

func ReadHeader(p *data.Page, offset uint16) StoreItem

type Stream

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

func InitialiseStream

func InitialiseStream(p data.Pager) (*Stream, uint32)

func NewStream

func NewStream(p data.Pager, rootPageNum uint32) *Stream

func (*Stream) Add

func (s *Stream) Add(payload []byte) (uint32, error)

func (*Stream) Get

func (s *Stream) Get(key uint32) (Record, error)

func (*Stream) GetFrom

func (s *Stream) GetFrom(key uint32, num uint16) ([]Record, error)

func (*Stream) IndexPage

func (s *Stream) IndexPage() uint32

func (*Stream) LastValueWrittenPage

func (s *Stream) LastValueWrittenPage() uint32

func (*Stream) LastValueWrittenPos

func (s *Stream) LastValueWrittenPos() uint16

func (*Stream) NextKey

func (s *Stream) NextKey() uint32

func (*Stream) SetIndexPage

func (s *Stream) SetIndexPage(pageNum uint32)

func (*Stream) SetStoreHeadPage

func (s *Stream) SetStoreHeadPage(pageNum uint32)

func (*Stream) SetStoreTailPage

func (s *Stream) SetStoreTailPage(pageNum uint32)

func (*Stream) StoreHeadPage

func (s *Stream) StoreHeadPage() uint32

func (*Stream) StoreTailPage

func (s *Stream) StoreTailPage() uint32

Jump to

Keyboard shortcuts

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