C# Класс DBreeze.LianaTrie.LTrieWriteCache

Наследование: IDisposable
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
Commit ( byte &rootData, byte &oldRootData ) : void

Dispose ( ) : void
GenerationNodeRead ( bool useCache, byte pointer, byte cachedGenerationMapLine, int MaximumNodeLineLength ) : byte[]

GenerationNodeWritingEnd ( byte pointer, byte data ) : byte[]

If line exists - makes nothing, otherwise writes in

Writing Generation Node to the end of File. We use current generation node pointer to black list it. if we reuse this new pointer inside of one transaction for overwriting, we don't need to back it up for rollback any more.

GenerationNodeWritingOver ( byte pointer, byte newData, byte generationMapLine, byte kidsBeforeModification ) : void

OverWriting Generation Node, we supply params where, oldData and newData. Old Data - not used thou

OverWriting Generation Node, we supply params where, oldData and newData.

GetNodeKids ( byte generationMapLine ) : byte[]

Returns NULL if not found

LTrieWriteCache ( LTrie trie ) : System
ReadDynamicDataBlock ( byte &initPtr, bool useCache ) : byte[]

ReadKey ( bool useCache, byte pointer ) : byte[]

Internal function for reading key only from DB storage Is called from ReadKey

ReadKeyValue ( bool useCache, byte pointer, long &valueStartPtr, uint &valueLength, byte &key, byte &val ) : void

Interanl Function for reading Key and Value in one set. Initial block read is setUp to 4096 bytes

ReadValue ( byte pointer, bool useCache, long &valueStartPtr, uint &valueLength ) : byte[]

ReadValuePartially ( byte pointer, uint startIndex, uint length, bool useCache, long &valueStartPtr, uint &valueLength ) : byte[]

RecreateDB ( ) : void

Used by Root Node RemoveAll with key re-creation

RollBack ( ) : void

RootNodeRead ( ) : byte[]

TransactionalCommit ( byte &rootData, byte &oldRootData ) : void

TransactionalCommitFinished ( ) : void

We need here to clear old root and call Storage Commit is finished

TransactionalRollBack ( ) : void

ValueWritingEnd ( byte &data, byte oldPtr ) : byte[]

ValueWritingOver ( byte pointer, byte &oldData, byte &newData, byte &key ) : void

WriteDynamicDataBlock ( byte &initPtr, byte &data ) : byte[]

Приватные методы

Метод Описание
RootNodeWrite ( byte rootData ) : void

Описание методов

Commit() публичный Метод

public Commit ( byte &rootData, byte &oldRootData ) : void
rootData byte
oldRootData byte
Результат void

Dispose() публичный Метод

public Dispose ( ) : void
Результат void

GenerationNodeRead() публичный Метод

public GenerationNodeRead ( bool useCache, byte pointer, byte cachedGenerationMapLine, int MaximumNodeLineLength ) : byte[]
useCache bool
pointer byte
cachedGenerationMapLine byte
MaximumNodeLineLength int
Результат byte[]

GenerationNodeWritingEnd() публичный Метод

If line exists - makes nothing, otherwise writes in Writing Generation Node to the end of File. We use current generation node pointer to black list it. if we reuse this new pointer inside of one transaction for overwriting, we don't need to back it up for rollback any more.
public GenerationNodeWritingEnd ( byte pointer, byte data ) : byte[]
pointer byte
data byte
Результат byte[]

GenerationNodeWritingOver() публичный Метод

OverWriting Generation Node, we supply params where, oldData and newData. Old Data - not used thou OverWriting Generation Node, we supply params where, oldData and newData.
public GenerationNodeWritingOver ( byte pointer, byte newData, byte generationMapLine, byte kidsBeforeModification ) : void
pointer byte
newData byte
generationMapLine byte
kidsBeforeModification byte
Результат void

GetNodeKids() публичный Метод

Returns NULL if not found
public GetNodeKids ( byte generationMapLine ) : byte[]
generationMapLine byte
Результат byte[]

LTrieWriteCache() публичный Метод

public LTrieWriteCache ( LTrie trie ) : System
trie LTrie
Результат System

ReadDynamicDataBlock() публичный Метод

public ReadDynamicDataBlock ( byte &initPtr, bool useCache ) : byte[]
initPtr byte
useCache bool
Результат byte[]

ReadKey() публичный Метод

Internal function for reading key only from DB storage Is called from ReadKey
public ReadKey ( bool useCache, byte pointer ) : byte[]
useCache bool
pointer byte ptr to KVP
Результат byte[]

ReadKeyValue() публичный Метод

Interanl Function for reading Key and Value in one set. Initial block read is setUp to 4096 bytes
public ReadKeyValue ( bool useCache, byte pointer, long &valueStartPtr, uint &valueLength, byte &key, byte &val ) : void
useCache bool
pointer byte ptr to KVP
valueStartPtr long will be more then 0 only in case if valueLength more then 0. It makes no diff for the null and byte[0] values in this context. Avoid byte[0]
valueLength uint will be 0 if val is null and if val is byte[0]
key byte
val byte
Результат void

ReadValue() публичный Метод

public ReadValue ( byte pointer, bool useCache, long &valueStartPtr, uint &valueLength ) : byte[]
pointer byte ptr to KVP
useCache bool
valueStartPtr long
valueLength uint
Результат byte[]

ReadValuePartially() публичный Метод

public ReadValuePartially ( byte pointer, uint startIndex, uint length, bool useCache, long &valueStartPtr, uint &valueLength ) : byte[]
pointer byte
startIndex uint
length uint
useCache bool
valueStartPtr long returns pointer where value starts from. -1 if can't be determined
valueLength uint returns full value length; 0 - default
Результат byte[]

RecreateDB() публичный Метод

Used by Root Node RemoveAll with key re-creation
public RecreateDB ( ) : void
Результат void

RollBack() публичный Метод

public RollBack ( ) : void
Результат void

RootNodeRead() публичный Метод

public RootNodeRead ( ) : byte[]
Результат byte[]

TransactionalCommit() публичный Метод

public TransactionalCommit ( byte &rootData, byte &oldRootData ) : void
rootData byte
oldRootData byte
Результат void

TransactionalCommitFinished() публичный Метод

We need here to clear old root and call Storage Commit is finished
public TransactionalCommitFinished ( ) : void
Результат void

TransactionalRollBack() публичный Метод

public TransactionalRollBack ( ) : void
Результат void

ValueWritingEnd() публичный Метод

public ValueWritingEnd ( byte &data, byte oldPtr ) : byte[]
data byte
oldPtr byte
Результат byte[]

ValueWritingOver() публичный Метод

public ValueWritingOver ( byte pointer, byte &oldData, byte &newData, byte &key ) : void
pointer byte
oldData byte
newData byte
key byte
Результат void

WriteDynamicDataBlock() публичный Метод

public WriteDynamicDataBlock ( byte &initPtr, byte &data ) : byte[]
initPtr byte
data byte
Результат byte[]