Dynalib Utils
Public Member Functions | Protected Attributes | List of all members
DynaBTreeNode< K > Class Template Reference

Base Class for B-Tree nodes. More...

#include <DynaBTree.h>

Inheritance diagram for DynaBTreeNode< K >:
Inheritance graph
[legend]
Collaboration diagram for DynaBTreeNode< K >:
Collaboration graph
[legend]

Public Member Functions

 DynaBTreeNode (TreeNodeType nodeType, int maxKeys, int leafOrder, int innerOrder)
 
virtual ~DynaBTreeNode ()
 
 DynaBTreeNode (const DynaBTreeNode< K > &other)
 
DynaBTreeNode< K > * copy () override
 
DynaBuffergetBuffer ()
 
DynaBTreeNode< K > * getParent ()
 
void setParent (DynaBTreeNode< K > *parent)
 
TreeNodeType getNodeType ()
 
int getKeyCount ()
 
bool wasFound (int returnValue)
 
int insertAt (int returnValue)
 
virtual bool getKeyFromData (uint index, K &key)
 
virtual void setKeyToData (uint index, K &key)
 
virtual bool isOverflow ()
 
virtual DynaBTreeNode< K > * handleOverflow ()
 
virtual bool isUnderflow ()
 
virtual bool canGiveKey ()
 
DynaBTreeNode< K > * getLeftSibling ()
 
void setLeftSibling (DynaBTreeNode< K > *sibling)
 
DynaBTreeNode< K > * getRightSibling ()
 
void setRightSibling (DynaBTreeNode< K > *sibling)
 
DynaBTreeNode< K > * handleUnderflow ()
 
virtual int search (K &key, MatchType match=MatchType::FULL_KEY)
 
virtual DynaBTreeNode< K > * split ()
 
virtual DynaBTreeNode< K > * pullUpKey (K &key, DynaBTreeNode< K > *leftChild, DynaBTreeNode< K > *rightNode)
 
virtual void transferChildren (DynaBTreeNode< K > *fromNode, DynaBTreeNode< K > *toNode, uint toIndex)
 
virtual DynaBTreeNode< K > * joinChildren (DynaBTreeNode< K > *leftChild, DynaBTreeNode< K > *rightChild)
 
virtual void joinWithSibling (K &sinkKey, DynaBTreeNode< K > *rightSibling)
 
virtual void transferFromSibling (K &sinkKey, K &upKey, DynaBTreeNode< K > *sibling, uint fromIndex)
 
- Public Member Functions inherited from ICopyable< DynaBTreeNode< K > >
 ICopyable ()=default
 
virtual ~ICopyable ()=default
 

Protected Attributes

TreeNodeType _nodeType
 
int _leafOrder
 
int _innerOrder
 
DynaBuffer_buffer
 
index_t _parentIndex
 
index_t _leftSiblingIndex
 
index_t _rightSiblingIndex
 
DynaBTreeNode< K > * _parent
 
DynaBTreeNode< K > * _leftSibling
 
DynaBTreeNode< K > * _rightSibling
 

Detailed Description

template<typename K>
class DynaBTreeNode< K >

Base Class for B-Tree nodes.

Template Parameters
K

Constructor & Destructor Documentation

◆ DynaBTreeNode() [1/2]

template<typename K >
DynaBTreeNode< K >::DynaBTreeNode ( TreeNodeType  nodeType,
int  maxKeys,
int  leafOrder,
int  innerOrder 
)

◆ ~DynaBTreeNode()

template<typename K >
DynaBTreeNode< K >::~DynaBTreeNode ( )
virtual

◆ DynaBTreeNode() [2/2]

template<typename K >
DynaBTreeNode< K >::DynaBTreeNode ( const DynaBTreeNode< K > &  other)

Member Function Documentation

◆ canGiveKey()

template<typename K >
bool DynaBTreeNode< K >::canGiveKey ( )
virtual

◆ copy()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::copy ( )
overridevirtual

◆ getBuffer()

template<typename K >
DynaBuffer * DynaBTreeNode< K >::getBuffer ( )

◆ getKeyCount()

template<typename K >
int DynaBTreeNode< K >::getKeyCount ( )

◆ getKeyFromData()

template<typename K >
bool DynaBTreeNode< K >::getKeyFromData ( uint  index,
K &  key 
)
virtual

◆ getLeftSibling()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::getLeftSibling ( )

◆ getNodeType()

template<typename K >
TreeNodeType DynaBTreeNode< K >::getNodeType ( )

◆ getParent()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::getParent ( )

◆ getRightSibling()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::getRightSibling ( )

◆ handleOverflow()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::handleOverflow ( )
virtual

◆ handleUnderflow()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::handleUnderflow ( )

◆ insertAt()

template<typename K>
int DynaBTreeNode< K >::insertAt ( int  returnValue)

◆ isOverflow()

template<typename K >
bool DynaBTreeNode< K >::isOverflow ( )
virtual

◆ isUnderflow()

template<typename K >
bool DynaBTreeNode< K >::isUnderflow ( )
virtual

◆ joinChildren()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::joinChildren ( DynaBTreeNode< K > *  leftChild,
DynaBTreeNode< K > *  rightChild 
)
virtual

◆ joinWithSibling()

template<typename K >
void DynaBTreeNode< K >::joinWithSibling ( K &  sinkKey,
DynaBTreeNode< K > *  rightSibling 
)
virtual

◆ pullUpKey()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::pullUpKey ( K &  key,
DynaBTreeNode< K > *  leftChild,
DynaBTreeNode< K > *  rightNode 
)
virtual

◆ search()

template<typename K >
int DynaBTreeNode< K >::search ( K &  key,
MatchType  match = MatchType::FULL_KEY 
)
virtual

◆ setKeyToData()

template<typename K >
void DynaBTreeNode< K >::setKeyToData ( uint  index,
K &  key 
)
virtual

◆ setLeftSibling()

template<typename K >
void DynaBTreeNode< K >::setLeftSibling ( DynaBTreeNode< K > *  sibling)

◆ setParent()

template<typename K >
void DynaBTreeNode< K >::setParent ( DynaBTreeNode< K > *  parent)

◆ setRightSibling()

template<typename K >
void DynaBTreeNode< K >::setRightSibling ( DynaBTreeNode< K > *  sibling)

◆ split()

template<typename K >
DynaBTreeNode< K > * DynaBTreeNode< K >::split ( )
virtual

◆ transferChildren()

template<typename K >
void DynaBTreeNode< K >::transferChildren ( DynaBTreeNode< K > *  fromNode,
DynaBTreeNode< K > *  toNode,
uint  toIndex 
)
virtual

◆ transferFromSibling()

template<typename K >
void DynaBTreeNode< K >::transferFromSibling ( K &  sinkKey,
K &  upKey,
DynaBTreeNode< K > *  sibling,
uint  fromIndex 
)
virtual

◆ wasFound()

template<typename K>
bool DynaBTreeNode< K >::wasFound ( int  returnValue)

Member Data Documentation

◆ _buffer

template<typename K>
DynaBuffer* DynaBTreeNode< K >::_buffer
protected

◆ _innerOrder

template<typename K>
int DynaBTreeNode< K >::_innerOrder
protected

◆ _leafOrder

template<typename K>
int DynaBTreeNode< K >::_leafOrder
protected

◆ _leftSibling

template<typename K>
DynaBTreeNode<K>* DynaBTreeNode< K >::_leftSibling
protected

◆ _leftSiblingIndex

template<typename K>
index_t DynaBTreeNode< K >::_leftSiblingIndex
protected

◆ _nodeType

template<typename K>
TreeNodeType DynaBTreeNode< K >::_nodeType
protected

◆ _parent

template<typename K>
DynaBTreeNode<K>* DynaBTreeNode< K >::_parent
protected

◆ _parentIndex

template<typename K>
index_t DynaBTreeNode< K >::_parentIndex
protected

◆ _rightSibling

template<typename K>
DynaBTreeNode<K>* DynaBTreeNode< K >::_rightSibling
protected

◆ _rightSiblingIndex

template<typename K>
index_t DynaBTreeNode< K >::_rightSiblingIndex
protected

The documentation for this class was generated from the following files: