private HashTableElement GetElementAt(int index) { byte[] getResult = _simpleCollectionNextIndex.Get(index); HashTableHeader header = GetHashTableHeader(); return(HashTableElement.Deserialize(getResult, index, header.KeySize, header.ValueSize)); }
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]); }
public void CtorTest() { int tableSize = 20; int keySize = 5; int valueSize = 10; HashTableHeader header = new HashTableHeader(tableSize, keySize, valueSize); Assert.AreEqual(tableSize, header.TableSize); Assert.AreEqual(keySize, header.KeySize); Assert.AreEqual(valueSize, header.ValueSize); }
public void SerializeTest() { int tableSize = 20; int keySize = 5; int valueSize = 10; HashTableHeader header = new HashTableHeader(tableSize, keySize, valueSize); byte[] headerBytes = header.Serialize(); byte[] expected = tableSize.ToBytes().Append(keySize.ToBytes(), valueSize.ToBytes()); TestHelper.AssertByteArraysAreSame(expected, headerBytes); }
public static int GetHeaderSize() { return(HashTableHeader.GetHeaderSize()); }
private HashTableHeader GetHashTableHeader() { byte[] fullHeader = _simpleCollectionNextIndex.GetUserHeader(); byte[] myHeader = fullHeader.SubArray(0, GetHeaderSize()); return(HashTableHeader.Deserialize(myHeader)); }