55 Dynamic B+Tree state

Dynamic B+Tree state

struct CalculatedBTreeTypeInfo
{
    const TypeOps* m_keyType;
    const TypeOps* m_payloadType;
    mutable ssize_t m_keyAndCrefSize;
    mutable ssize_t m_keyAndPayloadSize;
};

struct BTreeTypeInfo
{
    TypeOpsId m_keyTid;
    TypeOpsId m_payloadTid;
    mutable CalculatedBTreeTypeInfo m_bi;
};

$struct InternalNode isa IPersistable
{
    cref<_Node> m_ptr;
    ssize_t m_numKeyEntrys;
    xvector<octet_t> m_entrys;
    BTreeTypeInfo m_bti;
};

$struct LeafNode isa IPersistable
{
    cref<LeafNode> m_prev;
    cref<LeafNode> m_next;
    ssize_t m_numKeyEntrys;
    xvector<octet_t> m_entrys;
    BTreeTypeInfo m_bti;
};

$class+ BPlusTree isa IPersistable
{
    ...
private:
    ssize_t m_size;
    cref<LeafNode> m_firstLeaf;
    cref<LeafNode> m_lastLeaf;
    cref<_Node> m_root;
    ssize_t m_height;
    BTreeTypeInfo m_bti;
};