コード例 #1
0
ファイル: GBPTreeCorruption.cs プロジェクト: Neo4Net/Neo4Net
 public static PageCorruption <KEY, VALUE> MinimizeAllocOffsetInDynamicNode <KEY, VALUE>()
 {
     return((cursor, layout, node, treeState) =>
     {
         TreeNodeDynamicSize dynamicNode = AssertDynamicNode(node);
         dynamicNode.setAllocOffset(cursor, TreeNodeDynamicSize.HeaderLengthDynamic);
     });
 }
コード例 #2
0
ファイル: GBPTreeCorruption.cs プロジェクト: Neo4Net/Neo4Net
 public static PageCorruption <KEY, VALUE> MaximizeAllocOffsetInDynamicNode <KEY, VALUE>()
 {
     return((cursor, layout, node, treeState) =>
     {
         TreeNodeDynamicSize dynamicNode = AssertDynamicNode(node);
         dynamicNode.setAllocOffset(cursor, cursor.CurrentPageSize);                   // Clear alloc space
     });
 }
コード例 #3
0
ファイル: GBPTreeCorruption.cs プロジェクト: Neo4Net/Neo4Net
 public static PageCorruption <KEY, VALUE> IncrementDeadSpaceInDynamicNode <KEY, VALUE>()
 {
     return((cursor, layout, node, treeState) =>
     {
         TreeNodeDynamicSize dynamicNode = AssertDynamicNode(node);
         int deadSpace = dynamicNode.getDeadSpace(cursor);
         dynamicNode.setDeadSpace(cursor, deadSpace + 1);
     });
 }
コード例 #4
0
ファイル: GBPTreeCorruption.cs プロジェクト: Neo4Net/Neo4Net
 public static PageCorruption <KEY, VALUE> DecrementAllocOffsetInDynamicNode <KEY, VALUE>()
 {
     return((cursor, layout, node, treeState) =>
     {
         TreeNodeDynamicSize dynamicNode = AssertDynamicNode(node);
         int allocOffset = dynamicNode.getAllocOffset(cursor);
         dynamicNode.setAllocOffset(cursor, allocOffset - 1);
     });
 }
コード例 #5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void mustCompactKeyValueSizeHeader()
        internal virtual void MustCompactKeyValueSizeHeader()
        {
            int oneByteKeyMax   = DynamicSizeUtil.MASK_ONE_BYTE_KEY_SIZE;
            int oneByteValueMax = DynamicSizeUtil.MASK_ONE_BYTE_VALUE_SIZE;

            TreeNodeDynamicSize <RawBytes, RawBytes> node = GetNode(PAGE_SIZE, _layout);

            VerifyOverhead(node, oneByteKeyMax, 0, 1);
            VerifyOverhead(node, oneByteKeyMax, 1, 2);
            VerifyOverhead(node, oneByteKeyMax, oneByteValueMax, 2);
            VerifyOverhead(node, oneByteKeyMax, oneByteValueMax + 1, 3);
            VerifyOverhead(node, oneByteKeyMax + 1, 0, 2);
            VerifyOverhead(node, oneByteKeyMax + 1, 1, 3);
            VerifyOverhead(node, oneByteKeyMax + 1, oneByteValueMax, 3);
            VerifyOverhead(node, oneByteKeyMax + 1, oneByteValueMax + 1, 4);
        }
コード例 #6
0
        private void VerifyOverhead(TreeNodeDynamicSize <RawBytes, RawBytes> node, int keySize, int valueSize, int expectedOverhead)
        {
            Cursor.zapPage();
            node.InitializeLeaf(Cursor, STABLE_GENERATION, UNSTABLE_GENERATION);

            RawBytes key   = _layout.newKey();
            RawBytes value = _layout.newValue();

            key.Bytes   = new sbyte[keySize];
            value.Bytes = new sbyte[valueSize];

            int allocOffsetBefore = node.GetAllocOffset(Cursor);

            node.InsertKeyValueAt(Cursor, key, value, 0, 0);
            int allocOffsetAfter = node.GetAllocOffset(Cursor);

            assertEquals(allocOffsetBefore - keySize - valueSize - expectedOverhead, allocOffsetAfter);
        }