public NodeManager(IPersistentStorage persistentStorage, IFixedSizeDataSerializer <TKey> keySerializer, IFixedSizeDataSerializer <TValue> valueSerializer) { if (persistentStorage == null) { throw new ArgumentNullException(nameof(persistentStorage)); } if (keySerializer == null) { throw new ArgumentNullException(nameof(keySerializer)); } if (valueSerializer == null) { throw new ArgumentNullException(nameof(valueSerializer)); } this.syncRoot = new object(); this.Header = new Header(); this.persistentStorage = persistentStorage; this.keySerializer = keySerializer; this.valueSerializer = valueSerializer; if (persistentStorage.Length == 0) { Header.SaveHeader(persistentStorage); } else { Header.ReadHeader(persistentStorage); } }
public TernaryDictionary(IPersistentStorage persistentStorage, IComparer <TKey> comparer) { this.comparer = comparer; this.keySerializer = (IFixedSizeDataSerializer <TKey>)DataSerializer.GetDefault <TKey>(); this.valueSerializer = (IFixedSizeDataSerializer <TValue>)DataSerializer.GetDefault <TValue>(); this.nodeManager = new NodeManager(persistentStorage, keySerializer, valueSerializer); }
public Transaction(NodeManager nodeManager, Header header) { this.header = header.Copy(); this.nodeManager = nodeManager; this.keySerializer = nodeManager.keySerializer; this.valueSerializer = nodeManager.valueSerializer; this.depth = 1; this.finalized = false; }
public PersistentList(IPersistentStorage persistentStorage) { this.serializer = (IFixedSizeDataSerializer <TValue>)DataSerializer.GetDefault <TValue>(); this.persistentStorage = persistentStorage; this.headerSize = sizeof(long); this.recordSize = serializer.Size; this.buffer = new byte[recordSize * 1000]; this.bufferFileOffset = long.MinValue; this.bufferDataSize = 0; }
public NodeData(IFixedSizeDataSerializer <TKey> keySerializer, IFixedSizeDataSerializer <TValue> valueSerializer, byte[] data) { this.data = data; this.keySerializer = keySerializer; this.valueSerializer = valueSerializer; }