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;
 }
Ejemplo n.º 4
0
 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;
 }