public PersistentHashTable(string hashtableName, int tableSize, int keySize, int valueSize, int userHeaderSize)
 {
     _simpleCollectionNextIndex = new PersistentNextSpaceArray(hashtableName, keySize + valueSize, userHeaderSize + GetHeaderSize());
     HashTableHeader header = new HashTableHeader(tableSize, keySize, valueSize);
     _simpleCollectionNextIndex.PutUserHeader(header.Serialize());
     _simpleCollectionNextIndex.Put(tableSize-1, new byte[0]);
 }
        public PersistentHashTable(string hashtableName, int tableSize, int keySize, int valueSize, int userHeaderSize)
        {
            _simpleCollectionNextIndex = new PersistentNextSpaceArray(hashtableName, keySize + valueSize, userHeaderSize + GetHeaderSize());
            HashTableHeader header = new HashTableHeader(tableSize, keySize, valueSize);

            _simpleCollectionNextIndex.PutUserHeader(header.Serialize());
            _simpleCollectionNextIndex.Put(tableSize - 1, new byte[0]);
        }
Exemple #3
0
        public void Put(int index, byte[] buffer)
        {
            int elementSize = GetElementSize();

            byte[] extendedBuffer = buffer.ExtendTo(elementSize);
            _simpleCollectionNextSpace.Put(index, extendedBuffer);
            _cache.AddToCache(new Element(extendedBuffer), index);
        }
Exemple #4
0
        private void GetNextIndexTestAssert(int expected)
        {
            IPersistentArrayNextSpace target = InitPA("GetPANextIndexTest", 1, 16);

            try{
                target.Put(expected - 1, new byte[0]);
                int actual = target.GetNextIndex();
                Assert.AreEqual(expected, actual);
            }
            finally
            {
                target.Close();
            }
        }
Exemple #5
0
        private void PutGetTestAssert(int elementIndex, byte[] expected)
        {
            IPersistentArrayNextSpace target = InitPA("PAGetTest", 3, 16);

            try
            {
                target.Put(elementIndex, expected);
                byte[] actual = target.Get(elementIndex);
                TestHelper.AssertByteArraysAreSame(expected, actual);
            }
            finally
            {
                target.Close();
            }
        }
 public void WipeElement(int index)
 {
     _simpleCollectionNextSpace.Put(index, new byte[GetElementSize()]);
 }
 private void PutElement(HashTableElement element)
 {
     _simpleCollectionNextIndex.Put(element.Index, element.Key.Append(element.Value));
 }