stree_v_lib

package
v0.0.0-...-61d5703 Latest Latest
Warning

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

Go to latest
Published: Aug 22, 2022 License: LGPL-2.1 Imports: 19 Imported by: 2

Documentation

Overview

package name must match directory name

Index

Constants

View Source
const CHECK_START_BLANK_BYTES int = 4096
View Source
const STREE_FILEMODE = 0755
View Source
const S_IFMT uint32 = 00170000
View Source
const S_ISBLK uint32 = 060000 // stole from cpio
View Source
const USABLE_SPACE_PERCENTAGE = 80
View Source
const ZENDEMIC_OBJECT_STORE_STREE_V_MAGIC_5k uint64 = 0x5a454e5354354b41 // ZENST5KA  zendemic stree4kaligned

Variables

This section is empty.

Functions

func Calculate_block_size

func Calculate_block_size(log *tools.Nixomosetools_logger, key_type string, value_type []byte,
	max_key_length uint32, max_value_length uint32, additional_offspring_nodes uint32) (ret tools.Ret, resp uint32)

Types

type File_store_aligned

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

func New_File_store_aligned

func New_File_store_aligned(l *Nixomosetools_logger, store_filename string, block_size uint32,
	alignment uint32, nodes_per_block uint32, iopath File_store_io_path) *File_store_aligned

func (*File_store_aligned) Allocate

func (this *File_store_aligned) Allocate(amount uint32) (Ret, []uint32)

func (*File_store_aligned) Deallocate

func (this *File_store_aligned) Deallocate() Ret

func (*File_store_aligned) Dispose

func (this *File_store_aligned) Dispose() Ret

func (*File_store_aligned) Get_free_position

func (this *File_store_aligned) Get_free_position() (Ret, uint32)

func (*File_store_aligned) Get_root_node

func (this *File_store_aligned) Get_root_node() (Ret, uint32)

func (*File_store_aligned) Get_store_information

func (this *File_store_aligned) Get_store_information() (Ret, string)

func (*File_store_aligned) Get_total_blocks

func (this *File_store_aligned) Get_total_blocks() (Ret, uint32)

func (*File_store_aligned) Get_usable_storage_bytes

func (this *File_store_aligned) Get_usable_storage_bytes(path string) (Ret, uint64)

func (*File_store_aligned) Init

func (this *File_store_aligned) Init() Ret

func (*File_store_aligned) Is_backing_store_uninitialized

func (this *File_store_aligned) Is_backing_store_uninitialized() (Ret, bool)

func (*File_store_aligned) Load

func (this *File_store_aligned) Load(block_num uint32) (Ret, *[]byte)

func (*File_store_aligned) Load_header_and_check_magic

func (this *File_store_aligned) Load_header_and_check_magic(check_device_params bool) Ret

func (*File_store_aligned) Load_limit

func (this *File_store_aligned) Load_limit(block_num uint32, length uint32) (Ret, *[]byte)

func (*File_store_aligned) Open_datastore

func (this *File_store_aligned) Open_datastore() tools.Ret

func (*File_store_aligned) Open_datastore_readonly

func (this *File_store_aligned) Open_datastore_readonly() tools.Ret

func (*File_store_aligned) Read_raw_data

func (this *File_store_aligned) Read_raw_data(block_num uint32) (Ret, []byte)

func (*File_store_aligned) Set_root_node

func (this *File_store_aligned) Set_root_node(block_num uint32) Ret

func (*File_store_aligned) Shutdown

func (this *File_store_aligned) Shutdown() Ret

func (*File_store_aligned) Startup

func (this *File_store_aligned) Startup(force bool) Ret

func (*File_store_aligned) Store

func (this *File_store_aligned) Store(block_num uint32, data *[]byte) Ret

func (*File_store_aligned) Wipe

func (this *File_store_aligned) Wipe() Ret

type File_store_header

type File_store_header struct {
	// must be capitalized or we can deserialize because it's not exported...
	M_magic               uint64
	M_store_size_in_bytes uint64 // the total size of file we have to work with.
	M_nodes_per_block     uint32 // how many nodes per block, ie offspring nodes in mother node offspring array, plus 1. with this we can make an external reader
	M_block_size          uint32 // the number of bytes we need to store a block of data, not the size of just the data, stored in header on disk for checking on load
	M_block_count         uint32 // how many blocks we calculated this file/block device can store
	M_root_node           uint32
	M_free_position       uint32 // location of first free block (starts life at 1, because zero is our header storage area)
	M_alignment           uint32 // size of block alignment, 0 = not aligned.
	M_dirty               uint32 // was this filestore shutdown cleanly.

}

func New_file_store_header_copy

func New_file_store_header_copy(original *File_store_header) File_store_header

func (*File_store_header) Deserialize

func (this *File_store_header) Deserialize(log *Nixomosetools_logger, data *[]byte) Ret

func (*File_store_header) Serialized_size

func (this *File_store_header) Serialized_size() uint32

type File_store_io_path

type File_store_io_path interface {
	OpenFile(name string, flag int, perm os.FileMode) (*os.File, error)
	AllocBuffer(size int) []byte
}

type File_store_io_path_default

type File_store_io_path_default struct {
}

func New_file_store_io_path_default

func New_file_store_io_path_default() *File_store_io_path_default

func (*File_store_io_path_default) AllocBuffer

func (this *File_store_io_path_default) AllocBuffer(size int) []byte

func (*File_store_io_path_default) OpenFile

func (this *File_store_io_path_default) OpenFile(name string, flag int, perm os.FileMode) (*os.File, error)

type File_store_io_path_directio

type File_store_io_path_directio struct {
}

func New_file_store_io_path_directio

func New_file_store_io_path_directio() *File_store_io_path_directio

func (*File_store_io_path_directio) AllocBuffer

func (this *File_store_io_path_directio) AllocBuffer(size int) []byte

func (*File_store_io_path_directio) OpenFile

func (this *File_store_io_path_directio) OpenFile(name string, flag int, perm os.FileMode) (*os.File, error)

type Memory_store

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

func New_memory_store

func New_memory_store(l *tools.Nixomosetools_logger) *Memory_store

func (*Memory_store) Allocate

func (this *Memory_store) Allocate(amount uint32) (tools.Ret, []uint32)

func (*Memory_store) Deallocate

func (this *Memory_store) Deallocate() tools.Ret

func (*Memory_store) Dispose

func (this *Memory_store) Dispose() tools.Ret

func (*Memory_store) Get_free_position

func (this *Memory_store) Get_free_position() (tools.Ret, uint32)

func (*Memory_store) Get_root_node

func (this *Memory_store) Get_root_node() (tools.Ret, uint32)

func (*Memory_store) Get_total_blocks

func (this *Memory_store) Get_total_blocks() (tools.Ret, uint32)

func (*Memory_store) Init

func (this *Memory_store) Init() tools.Ret

func (*Memory_store) Is_backing_store_uninitialized

func (this *Memory_store) Is_backing_store_uninitialized() (tools.Ret, bool)

func (*Memory_store) Load

func (this *Memory_store) Load(pos uint32) (tools.Ret, *[]byte)

func (*Memory_store) Load_limit

func (this *Memory_store) Load_limit(pos uint32, len uint32) (tools.Ret, *[]byte)

func (*Memory_store) Set_free_position

func (this *Memory_store) Set_free_position(pos uint32) tools.Ret

func (*Memory_store) Set_root_node

func (this *Memory_store) Set_root_node(pos uint32) tools.Ret

func (*Memory_store) Shutdown

func (this *Memory_store) Shutdown() tools.Ret

func (*Memory_store) Startup

func (this *Memory_store) Startup(force bool) tools.Ret

func (*Memory_store) Store

func (this *Memory_store) Store(pos uint32, data *[]byte) tools.Ret

func (*Memory_store) Wipe

func (this *Memory_store) Wipe() tools.Ret

type Node

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

func New_node

func New_node(sin *Stree_v, posin uint32, data string) *Node

func (*Node) Get_data

func (this *Node) Get_data() []byte

func (*Node) Get_key

func (this *Node) Get_key() string

func (*Node) Get_left

func (this *Node) Get_left() *Node

func (*Node) Get_right

func (this *Node) Get_right() *Node

type Stree_v

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

func New_Stree_v

func New_Stree_v(l *tools.Nixomosetools_logger, b stree_v_interfaces.Stree_v_backing_store_interface, max_key_length uint32,
	max_value_length uint32, additional_offspring_nodes uint32, verify_client_block_size uint32, default_key string,
	default_value []byte) *Stree_v

func (*Stree_v) Delete

func (this *Stree_v) Delete(key string, not_found_is_error bool) tools.Ret

func (*Stree_v) Diag_dump

func (this *Stree_v) Diag_dump(printtree bool)

func (*Stree_v) Dispose

func (this *Stree_v) Dispose() tools.Ret

func (*Stree_v) Fetch

func (this *Stree_v) Fetch(key string) (Ret tools.Ret, Retfoundresp bool, resp []byte)

func (*Stree_v) Get_free_position

func (this *Stree_v) Get_free_position() uint32

func (*Stree_v) Get_logger

func (this *Stree_v) Get_logger() *tools.Nixomosetools_logger

func (*Stree_v) Get_metadata_size

func (this *Stree_v) Get_metadata_size() uint32

func (*Stree_v) Get_node_size_in_bytes

func (this *Stree_v) Get_node_size_in_bytes() uint32

func (*Stree_v) Get_root_node

func (this *Stree_v) Get_root_node() uint32

in java there is a package scope, but I don't think go has that, so it's public.

func (*Stree_v) Get_total_blocks

func (this *Stree_v) Get_total_blocks() (tools.Ret, uint32)

func (*Stree_v) Get_used_blocks

func (this *Stree_v) Get_used_blocks() (tools.Ret, uint32)

func (*Stree_v) Init

func (this *Stree_v) Init() tools.Ret

func (*Stree_v) Insert

func (this *Stree_v) Insert(key string, value []byte) tools.Ret

func (*Stree_v) Is_initialized

func (this *Stree_v) Is_initialized() (tools.Ret, bool)

func (*Stree_v) Load

func (s *Stree_v) Load(pos uint32) *stree_v_node.Stree_node

func (*Stree_v) Node_load

func (this *Stree_v) Node_load(lp uint32) (tools.Ret, *stree_v_node.Stree_node)

func (*Stree_v) Node_load_metadata

func (this *Stree_v) Node_load_metadata(lp uint32) (tools.Ret, *stree_v_node.Stree_node)

func (*Stree_v) Print

func (this *Stree_v) Print(log *tools.Nixomosetools_logger)

func (*Stree_v) Shutdown

func (this *Stree_v) Shutdown() tools.Ret

func (*Stree_v) Startup

func (this *Stree_v) Startup(force bool) tools.Ret

func (*Stree_v) Update_or_insert

func (this *Stree_v) Update_or_insert(key string, new_value []byte) tools.Ret

func (*Stree_v) Wipe

func (this *Stree_v) Wipe() tools.Ret

type Treeprinter_iii

type Treeprinter_iii struct {
}

func (*Treeprinter_iii) PrintNode

func (tp *Treeprinter_iii) PrintNode(s *Stree_v, pos uint32)

func (*Treeprinter_iii) PrintNodeInternal

func (tp *Treeprinter_iii) PrintNodeInternal(nodes *list.List, level int, maxLevel int)

func (*Treeprinter_iii) PrintNodeRoot

func (tp *Treeprinter_iii) PrintNodeRoot(root *Node)

Jump to

Keyboard shortcuts

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