Versions in this module Expand all Collapse all v0 v0.2.0 May 22, 2020 Changes in this version + var DEFAULT_REGION_SHIFT uint16 = 25 + var SNAP_MAGIC_NUMBER = [4]byte + var SNAP_MAJOR_VERSION uint16 = 0 + var SNAP_MINOR_VERSION uint16 = 3 + type BackingFile struct + JournalEnd uint64 + JournalStart uint64 + func CreateBackingFile(prefix string, maxCapacity uint64, currentCapacity uint64) (*BackingFile, error) + func OpenBackingFile(fileName string) (*BackingFile, error) + func (bf *BackingFile) Close() + func (bf *BackingFile) Delete() + func (bf *BackingFile) GetCopyOffset(start uint64, end uint64) (onBacking []uint32, onOrigin []uint32) + func (bf *BackingFile) GetFileName() string + func (bf *BackingFile) ReadFromOffset(buf []byte, offset uint32) (int, error) + func (bf *BackingFile) RegionSize() uint64 + func (bf *BackingFile) Sync() + func (bf *BackingFile) WriteOffset(buf []byte, offset uint32) + type BackingFileHeader struct + CreateTime int64 + JournalSize uint64 + MajorVersion uint16 + MaxCapacity uint64 + MinorVersion uint16 + RawCapacity uint64 + RegionShift uint16 + UUID uuid.UUID + func (self *BackingFileHeader) WriteTo(writer io.Writer) (err error) + type BitmapEntry struct + OriginOffset uint32 + SnapOffset uint32 + func ReadRecordFrom(reader io.Reader) BitmapEntry + func (entry BitmapEntry) CheckSum() uint32 + func (entry BitmapEntry) Size() uint64 + func (entry BitmapEntry) WriteTo(writer io.Writer) (err error) type FileNVM + func (self *FileNVM) ViewEnd() uint64 + func (self *FileNVM) ViewStart() uint64 + type SnapNVM struct + func NewSnapshotNVM(originFile *FileNVM) (*SnapNVM, error) + func (self *SnapNVM) BlockSize() block.BlockSize + func (self *SnapNVM) Capacity() uint64 + func (self *SnapNVM) Close() error + func (self *SnapNVM) CreateSnapshotIfNeeded() (err error) + func (self *SnapNVM) DeleteSnapshot() error + func (self *SnapNVM) GetSnapshotReader() (*SnapshotReader, error) + func (self *SnapNVM) Position() uint64 + func (self *SnapNVM) RawSize() int64 + func (self *SnapNVM) Read(buf []byte) (n int, err error) + func (self *SnapNVM) Seek(offset int64, whence int) (int64, error) + func (self *SnapNVM) Split(position uint64) (sp1 NonVolatileMemory, sp2 NonVolatileMemory, err error) + func (self *SnapNVM) Sync() error + func (self *SnapNVM) Write(buf []byte) (n int, err error) + type SnapshotReader struct + func (self *SnapshotReader) Read(p []byte) (n int, err error) + func (self *SnapshotReader) Seek(offset int64, whence int) (int64, error) v0.1.0 Sep 13, 2019 Changes in this version + const FULL_HEADER_SIZE + const HEADER_SIZE + const MAJOR_VERSION + const MAX_DATA_REGION_SIZE + const MAX_JOURNAL_REGION_SIZE + const MINOR_VERSION + var MAGIC_NUMBER = [4]byte + func ConvertToOffset(nvm NonVolatileMemory, offset int64, whence int) (int64, error) + func Open(path string) (nvm *FileNVM, header *StorageHeader, err error) + type FileNVM struct + func CreateIfAbsent(path string, capacity uint64) (*FileNVM, error) + func (nvm *FileNVM) BlockSize() block.BlockSize + func (nvm *FileNVM) Capacity() uint64 + func (nvm *FileNVM) Close() error + func (nvm *FileNVM) RawSize() int64 + func (nvm *FileNVM) Read(buf []byte) (n int, err error) + func (nvm *FileNVM) Seek(offset int64, whence int) (int64, error) + func (nvm *FileNVM) Split(position uint64) (sp1 NonVolatileMemory, sp2 NonVolatileMemory, err error) + func (nvm *FileNVM) Write(buf []byte) (n int, err error) + func (self *FileNVM) Position() uint64 + func (self *FileNVM) Sync() error + type MemoryNVM struct + func New(size uint64) (*MemoryNVM, error) + func NewFromVec(vec []byte) (*MemoryNVM, error) + func (memory *MemoryNVM) AsBytes() []byte + func (memory *MemoryNVM) BlockSize() block.BlockSize + func (memory *MemoryNVM) Capacity() uint64 + func (memory *MemoryNVM) Close() error + func (memory *MemoryNVM) Position() uint64 + func (memory *MemoryNVM) RawSize() int64 + func (memory *MemoryNVM) Read(buf []byte) (n int, err error) + func (memory *MemoryNVM) Seek(offset int64, whence int) (int64, error) + func (memory *MemoryNVM) Split(p uint64) (sp1 NonVolatileMemory, sp2 NonVolatileMemory, err error) + func (memory *MemoryNVM) Sync() error + func (memory *MemoryNVM) Write(p []byte) (n int, err error) + type NonVolatileMemory interface + BlockSize func() block.BlockSize + Capacity func() uint64 + Position func() uint64 + RawSize func() int64 + Split func(position uint64) (NonVolatileMemory, NonVolatileMemory, error) + Sync func() error + type StorageHeader struct + BlockSize block.BlockSize + DataRegionSize uint64 + JournalRegionSize uint64 + MajorVersion uint16 + MinorVersion uint16 + UUID uuid.UUID + func DefaultStorageHeader() *StorageHeader + func ReadFrom(reader io.Reader) (*StorageHeader, error) + func ReadFromFile(f *os.File) (*StorageHeader, error) + func (self *StorageHeader) RegionSize() uint64 + func (self *StorageHeader) SplitRegion(nvm NonVolatileMemory) (NonVolatileMemory, NonVolatileMemory) + func (self *StorageHeader) StorageSize() uint64 + func (self *StorageHeader) WriteHeaderRegionTo(writer io.Writer) (err error) + func (self *StorageHeader) WriteTo(writer io.Writer) (err error)