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

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

Открытые свойства

Свойство Тип Описание
ValuesLazyLoadingIsOn bool

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

Метод Описание
Add ( byte key, byte value ) : byte[]

Adds key. Overload without refs

Add ( byte &key, byte &value, bool &WasUpdated ) : byte[]
Add ( byte &key, byte &value, bool &WasUpdated, bool dontUpdateIfExists ) : byte[]

Adds key

AddPartially ( byte key, byte value, uint startIndex, long &valueStartPtr ) : byte[]

Overload without refs

AddPartially ( byte &key, byte &value, uint startIndex, long &valueStartPtr, bool &WasUpdated ) : byte[]

REMEMBER THAT all keys are first formed in memory and then copied to the disk, so it's not for storing movies inside of the value. For storing movies (BLOBs) will be used other approach, see docu.

ChangeKey ( byte &oldKey, byte &newKey ) : void
ChangeKey ( byte &oldKey, byte &newKey, byte &ptrToNewKey, bool &WasChanged ) : void
Commit ( ) : void
Count ( ITrieRootNode readRootNode ) : ulong

Can be used inside of DBreeze - concerns all read functions

Count ( bool useCache ) : ulong

if useCache = true; uses newly created root node, else uses writing root node

Dispose ( ) : void
GetKey ( byte &key, ITrieRootNode readRootNode ) : LTrieRow

DBreeze compatible. Extension, which helps to READ-THREADS smartly utilize created before read-roots

GetKey ( byte key, bool useCache ) : LTrieRow

if useCache = true; uses newly created root node, else uses writing root node

GetTable ( LTrieRow row, byte &btKey, uint tableIndex, LTrie masterTrie, bool insertTable, bool useCache ) : NestedTable

GetTrieReadNode ( long &dtTableFixed ) : ITrieRootNode

Interface function which recreates every time new rootNode from itself by every new function call. and also packs root node last fixation dateTime (ROLL or COMMIT). It will be used for READ FUNC's via Transaction, they can decide if to create new instance of read root or use existing. Returns NULL is !TableIsOperable.

ITRCommit ( ) : void
ITRCommitFinished ( ) : void
ITRRollBack ( ) : void
InsertDataBlock ( byte &initialPtr, byte &data ) : byte[]
IterateBackward ( ) : IEnumerable
IterateBackward ( ITrieRootNode readRootNode ) : IEnumerable
IterateBackward ( bool useCache ) : IEnumerable
IterateBackwardForMaximal ( ) : LTrieRow
IterateBackwardForMaximal ( ITrieRootNode readRootNode ) : LTrieRow
IterateBackwardForMaximal ( bool useCache ) : LTrieRow
IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey ) : IEnumerable
IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, bool useCache ) : IEnumerable
IterateBackwardSkip ( ulong skippingQuantity ) : IEnumerable
IterateBackwardSkip ( ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardSkip ( ulong skippingQuantity, bool useCache ) : IEnumerable
IterateBackwardSkipFrom ( byte key, ulong skippingQuantity ) : IEnumerable
IterateBackwardSkipFrom ( byte key, ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardSkipFrom ( byte key, ulong skippingQuantity, bool useCache ) : IEnumerable
IterateBackwardStartFrom ( byte key, bool includeStartKey ) : IEnumerable
IterateBackwardStartFrom ( byte key, bool includeStartKey, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardStartFrom ( byte key, bool includeStartKey, bool useCache ) : IEnumerable
IterateBackwardStartsWith ( byte startKey ) : IEnumerable
IterateBackwardStartsWith ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
IterateBackwardStartsWith ( byte startKey, bool useCache ) : IEnumerable
IterateBackwardStartsWithClosestToPrefix ( byte startKey ) : IEnumerable

IterateBackwardStartsWithClosestToPrefix ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable

IterateBackwardStartsWithClosestToPrefix ( byte startKey, bool useCache ) : IEnumerable

IterateForward ( ) : IEnumerable
IterateForward ( ITrieRootNode readRootNode ) : IEnumerable
IterateForward ( bool useCache ) : IEnumerable
IterateForwardForMinimal ( ) : LTrieRow
IterateForwardForMinimal ( ITrieRootNode readRootNode ) : LTrieRow
IterateForwardForMinimal ( bool useCache ) : LTrieRow
IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey ) : IEnumerable
IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, bool useCache ) : IEnumerable
IterateForwardSkip ( ulong skippingQuantity ) : IEnumerable
IterateForwardSkip ( ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardSkip ( ulong skippingQuantity, bool useCache ) : IEnumerable
IterateForwardSkipFrom ( byte key, ulong skippingQuantity ) : IEnumerable
IterateForwardSkipFrom ( byte key, ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardSkipFrom ( byte key, ulong skippingQuantity, bool useCache ) : IEnumerable
IterateForwardStartFrom ( byte key, bool includeStartKey ) : IEnumerable
IterateForwardStartFrom ( byte key, bool includeStartKey, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardStartFrom ( byte key, bool includeStartKey, bool useCache ) : IEnumerable
IterateForwardStartsWith ( byte startKey ) : IEnumerable

Always creates new root to get committed data

IterateForwardStartsWith ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
IterateForwardStartsWith ( byte startKey, bool useCache ) : IEnumerable
IterateForwardStartsWithClosestToPrefix ( byte startKey ) : IEnumerable

IterateForwardStartsWithClosestToPrefix ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable

IterateForwardStartsWithClosestToPrefix ( byte startKey, bool useCache ) : IEnumerable

LTrie ( IStorage storage ) : System

Liana Trie

ModificationThreadId ( int transactionThreadId ) : void
Remove ( byte &key ) : void
Remove ( byte &key, bool &WasRemoved, bool retrieveDeletedValue, byte &deletedValue ) : void

Removes the key

RemoveAll ( bool withFileRecreation ) : void
RollBack ( ) : void

RollBack

SelectDataBlock ( byte &initialPtr, bool useCache ) : byte[]
SingleCommit ( ) : void

Wrapper for ITransactable

SingleRollback ( ) : void

Wrapper for ITransactable

TransactionIsFinished ( int transactionThreadId ) : void

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

Метод Описание
CheckTableIsOperable ( ) : void

Will return exception, if not. Must be called by all functions

SaveGenerationMap ( ) : void

Technical function. Used by Fetch SYNCHRO_READ FUNCs, which use write root node, to make last in-memory changes to flash on the disk, before commit.

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

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

Adds key. Overload without refs
public Add ( byte key, byte value ) : byte[]
key byte
value byte
Результат byte[]

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

public Add ( byte &key, byte &value, bool &WasUpdated ) : byte[]
key byte
value byte
WasUpdated bool
Результат byte[]

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

Adds key
public Add ( byte &key, byte &value, bool &WasUpdated, bool dontUpdateIfExists ) : byte[]
key byte
value byte
WasUpdated bool indicates that key we insert, already existed in the system and was updated
dontUpdateIfExists bool When true - if value exists, we dont update it. If WasUpdated = true then we value exists, if false - we have inserted new one
Результат byte[]

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

Overload without refs
public AddPartially ( byte key, byte value, uint startIndex, long &valueStartPtr ) : byte[]
key byte
value byte
startIndex uint
valueStartPtr long
Результат byte[]

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

REMEMBER THAT all keys are first formed in memory and then copied to the disk, so it's not for storing movies inside of the value. For storing movies (BLOBs) will be used other approach, see docu.
public AddPartially ( byte &key, byte &value, uint startIndex, long &valueStartPtr, bool &WasUpdated ) : byte[]
key byte
value byte
startIndex uint
valueStartPtr long
WasUpdated bool
Результат byte[]

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

public ChangeKey ( byte &oldKey, byte &newKey ) : void
oldKey byte
newKey byte
Результат void

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

public ChangeKey ( byte &oldKey, byte &newKey, byte &ptrToNewKey, bool &WasChanged ) : void
oldKey byte
newKey byte
ptrToNewKey byte
WasChanged bool
Результат void

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

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

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

Can be used inside of DBreeze - concerns all read functions
public Count ( ITrieRootNode readRootNode ) : ulong
readRootNode ITrieRootNode
Результат ulong

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

if useCache = true; uses newly created root node, else uses writing root node
public Count ( bool useCache ) : ulong
useCache bool
Результат ulong

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

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

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

DBreeze compatible. Extension, which helps to READ-THREADS smartly utilize created before read-roots
public GetKey ( byte &key, ITrieRootNode readRootNode ) : LTrieRow
key byte
readRootNode ITrieRootNode if null then WRITE-ROOT NODE
Результат LTrieRow

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

if useCache = true; uses newly created root node, else uses writing root node
public GetKey ( byte key, bool useCache ) : LTrieRow
key byte
useCache bool
Результат LTrieRow

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

public GetTable ( LTrieRow row, byte &btKey, uint tableIndex, LTrie masterTrie, bool insertTable, bool useCache ) : NestedTable
row LTrieRow
btKey byte
tableIndex uint
masterTrie LTrie
insertTable bool Regulates if InsertTable or SelectTable was called (ability to create table if it doesn't exist)
useCache bool Regulates READ table thread or WRITE table thread - visibilityscope
Результат NestedTable

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

Interface function which recreates every time new rootNode from itself by every new function call. and also packs root node last fixation dateTime (ROLL or COMMIT). It will be used for READ FUNC's via Transaction, they can decide if to create new instance of read root or use existing. Returns NULL is !TableIsOperable.
public GetTrieReadNode ( long &dtTableFixed ) : ITrieRootNode
dtTableFixed long
Результат ITrieRootNode

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

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

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

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

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

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

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

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

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

public IterateBackward ( ) : IEnumerable
Результат IEnumerable

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

public IterateBackward ( ITrieRootNode readRootNode ) : IEnumerable
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateBackward ( bool useCache ) : IEnumerable
useCache bool
Результат IEnumerable

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

public IterateBackwardForMaximal ( ) : LTrieRow
Результат LTrieRow

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

public IterateBackwardForMaximal ( ITrieRootNode readRootNode ) : LTrieRow
readRootNode ITrieRootNode
Результат LTrieRow

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

public IterateBackwardForMaximal ( bool useCache ) : LTrieRow
useCache bool
Результат LTrieRow

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

public IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
Результат IEnumerable

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

public IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateBackwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, bool useCache ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
useCache bool
Результат IEnumerable

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

public IterateBackwardSkip ( ulong skippingQuantity ) : IEnumerable
skippingQuantity ulong
Результат IEnumerable

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

public IterateBackwardSkip ( ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
skippingQuantity ulong
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateBackwardSkip ( ulong skippingQuantity, bool useCache ) : IEnumerable
skippingQuantity ulong
useCache bool
Результат IEnumerable

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

public IterateBackwardSkipFrom ( byte key, ulong skippingQuantity ) : IEnumerable
key byte
skippingQuantity ulong
Результат IEnumerable

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

public IterateBackwardSkipFrom ( byte key, ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
key byte
skippingQuantity ulong
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateBackwardSkipFrom ( byte key, ulong skippingQuantity, bool useCache ) : IEnumerable
key byte
skippingQuantity ulong
useCache bool
Результат IEnumerable

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

public IterateBackwardStartFrom ( byte key, bool includeStartKey ) : IEnumerable
key byte
includeStartKey bool
Результат IEnumerable

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

public IterateBackwardStartFrom ( byte key, bool includeStartKey, ITrieRootNode readRootNode ) : IEnumerable
key byte
includeStartKey bool
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateBackwardStartFrom ( byte key, bool includeStartKey, bool useCache ) : IEnumerable
key byte
includeStartKey bool
useCache bool
Результат IEnumerable

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

public IterateBackwardStartsWith ( byte startKey ) : IEnumerable
startKey byte
Результат IEnumerable

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

public IterateBackwardStartsWith ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateBackwardStartsWith ( byte startKey, bool useCache ) : IEnumerable
startKey byte
useCache bool
Результат IEnumerable

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

public IterateBackwardStartsWithClosestToPrefix ( byte startKey ) : IEnumerable
startKey byte
Результат IEnumerable

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

public IterateBackwardStartsWithClosestToPrefix ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateBackwardStartsWithClosestToPrefix ( byte startKey, bool useCache ) : IEnumerable
startKey byte
useCache bool
Результат IEnumerable

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

public IterateForward ( ) : IEnumerable
Результат IEnumerable

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

public IterateForward ( ITrieRootNode readRootNode ) : IEnumerable
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateForward ( bool useCache ) : IEnumerable
useCache bool
Результат IEnumerable

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

public IterateForwardForMinimal ( ) : LTrieRow
Результат LTrieRow

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

public IterateForwardForMinimal ( ITrieRootNode readRootNode ) : LTrieRow
readRootNode ITrieRootNode
Результат LTrieRow

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

public IterateForwardForMinimal ( bool useCache ) : LTrieRow
useCache bool
Результат LTrieRow

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

public IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
Результат IEnumerable

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

public IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateForwardFromTo ( byte startKey, byte stopKey, bool includeStartKey, bool includeStopKey, bool useCache ) : IEnumerable
startKey byte
stopKey byte
includeStartKey bool
includeStopKey bool
useCache bool
Результат IEnumerable

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

public IterateForwardSkip ( ulong skippingQuantity ) : IEnumerable
skippingQuantity ulong
Результат IEnumerable

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

public IterateForwardSkip ( ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
skippingQuantity ulong
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateForwardSkip ( ulong skippingQuantity, bool useCache ) : IEnumerable
skippingQuantity ulong
useCache bool
Результат IEnumerable

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

public IterateForwardSkipFrom ( byte key, ulong skippingQuantity ) : IEnumerable
key byte
skippingQuantity ulong
Результат IEnumerable

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

public IterateForwardSkipFrom ( byte key, ulong skippingQuantity, ITrieRootNode readRootNode ) : IEnumerable
key byte
skippingQuantity ulong
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateForwardSkipFrom ( byte key, ulong skippingQuantity, bool useCache ) : IEnumerable
key byte
skippingQuantity ulong
useCache bool
Результат IEnumerable

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

public IterateForwardStartFrom ( byte key, bool includeStartKey ) : IEnumerable
key byte
includeStartKey bool
Результат IEnumerable

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

public IterateForwardStartFrom ( byte key, bool includeStartKey, ITrieRootNode readRootNode ) : IEnumerable
key byte
includeStartKey bool
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateForwardStartFrom ( byte key, bool includeStartKey, bool useCache ) : IEnumerable
key byte
includeStartKey bool
useCache bool
Результат IEnumerable

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

Always creates new root to get committed data
public IterateForwardStartsWith ( byte startKey ) : IEnumerable
startKey byte
Результат IEnumerable

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

public IterateForwardStartsWith ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateForwardStartsWith ( byte startKey, bool useCache ) : IEnumerable
startKey byte
useCache bool
Результат IEnumerable

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

public IterateForwardStartsWithClosestToPrefix ( byte startKey ) : IEnumerable
startKey byte
Результат IEnumerable

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

public IterateForwardStartsWithClosestToPrefix ( byte startKey, ITrieRootNode readRootNode ) : IEnumerable
startKey byte
readRootNode ITrieRootNode
Результат IEnumerable

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

public IterateForwardStartsWithClosestToPrefix ( byte startKey, bool useCache ) : IEnumerable
startKey byte
useCache bool
Результат IEnumerable

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

Liana Trie
public LTrie ( IStorage storage ) : System
storage IStorage
Результат System

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

public ModificationThreadId ( int transactionThreadId ) : void
transactionThreadId int
Результат void

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

public Remove ( byte &key ) : void
key byte
Результат void

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

Removes the key
public Remove ( byte &key, bool &WasRemoved, bool retrieveDeletedValue, byte &deletedValue ) : void
key byte
WasRemoved bool indicates that value existed if true
retrieveDeletedValue bool indicates if we should bind deleted value to the result
deletedValue byte interesting only if WasRemoved = true and retrieveDeletedValue is true
Результат void

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

public RemoveAll ( bool withFileRecreation ) : void
withFileRecreation bool
Результат void

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

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

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

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

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

Wrapper for ITransactable
public SingleCommit ( ) : void
Результат void

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

Wrapper for ITransactable
public SingleRollback ( ) : void
Результат void

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

public TransactionIsFinished ( int transactionThreadId ) : void
transactionThreadId int
Результат void

Описание свойств

ValuesLazyLoadingIsOn публичное свойство

When it's on iterators, Select and SelectDirect return Row with the key and a pointer to the value. Value will be read out when we call it Row.Value. When it's off we read value together with the key in one round
public bool ValuesLazyLoadingIsOn
Результат bool