DARTFile

DART File system Distributed Archive of Random Transaction This class handles the CRUD Database

The archive is hashed and store in structure similar to merkle trees datastruct. Which here is called at sparsed merkle tree the sparse merkle is section in to rims in hierarchy which is where each rim contains a sub-tree called Branches. If a rim Doesn't branches out it contains a Leave which contains a Archive

Constructors

this
this(HashNet net, string filename, Flag!"read_only" read_only)

A file set by filename should be create by the BlockFile before it can be used as a DARTFile

Members

Aliases

bullseye
alias bullseye = fingerprint

Ditto for fingerprint

Classes

RimWalkerFiber
class RimWalkerFiber
Undocumented in source.

Functions

branches
Branches branches(const(ubyte[]) rim_path, Index* branch_index)

Loads the branches from the DART at rim_path

close
void close()

Close the DARTFile

dump
void dump(SectorRange sectors, Flag!"full" full, uint depth)

Dumps the dart as rim-path

futureEye
Fingerprint futureEye(const(RecordFactory.Recorder) modifyrecords, Flag!"undo" undo)

Wrapper function for the modify function.

indent
string indent(uint rim_level)

Create indet string a rim_level

load
Document load(const(Branches) b, uint key)

Reads the data at branch key

loads
RecordFactory.Recorder loads(Range dart_indices, Archive.Type type)

Loads all the archives in the list of fingerprints

modify
Fingerprint modify(const(RecordFactory.Recorder) modifyrecords, Flag!"undo" undo)

Wrapper function for the modify function.

modify
Fingerprint modify(const(RecordFactory.Recorder) modifyrecords)
Sample of the DART Map
key[0]key[1]key[2]key[3]key[4]
rim0001020304....
20A333B117-> archive fingerprint=20_A3_33_B1_17....
********42-> archive fingerprint=20_A3_33_B1_42....
****57B117-> archive fingerprint=20_A3_57_B1_17....
********42-> archive fingerprint=20_A3_57_B1_42....
****C2-> archive fingerprint=20_A3_C3....
****CA48-> archive fingerprint=20_A3_CA_48....
******68-> archive fingerprint=20_A3_CA_48....

Sector=[key[0],key[1]] <br> ### Note ** means the same value as above The first two rims is set the sector and the following is rims represents the key index into the Branches incices The modifyrecords contains the archives which is going to be added or deleted The type of archive tells which actions are going to be performed by the modifier If the function executes successfully then the DART is updated or else it does not affect the DART The function returns the bullseye of the dart

recorder
RecordFactory.Recorder recorder()

Creates a recorder factor

recorder
RecordFactory.Recorder recorder(const(Document) doc)

Creates a recorder from a document using the RecorderFactory used by the DART

recorder
RecordFactory.Recorder recorder(RecordFactory.Recorder.Archives archives)

Ditto

rimWalkerRange
RimWalkerFiber rimWalkerRange(immutable(Buffer) rim_paths)

A range which traverse the branches below the rim_paths The range build as a Fiber.

Structs

Branches
struct Branches

Data struct which contains the branches in sub-tree