Bdb packages | Design docs | Source docs | Guidelines | Recent releases

Search | Site Map .

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

CdbBdbSBtreeNode< K, ORDER > Class Template Reference
[CdbBdbShared]

An embeddable node class for the persistent capable B-tree. More...

#include <CdbBdbSBtreeNode.hh>

List of all members.

Public Methods

 CdbBdbSBtreeNode ()
 CdbBdbSBtreeNode (d_ULong p)
 CdbBdbSBtreeNode (const CdbBdbSBtreeNode< K, ORDER > &theNode)
 ~CdbBdbSBtreeNode ()
 The destructor.

CdbBdbSBtreeNode< K, ORDER > & operator= (const CdbBdbSBtreeNode< K, ORDER > &theNode)

Public Attributes

d_ULong parent
d_ULong child [2 *ORDER::N+1]
key [2 *ORDER::N]
d_Boolean isLeaf
d_Octet n

Private Methods

void copySelf (const CdbBdbSBtreeNode< K, ORDER > &theNode)
 Set up own context from specified one.


Detailed Description

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
class CdbBdbSBtreeNode< K, ORDER >

An embeddable node class for the persistent capable B-tree.

This template class implement nodes for the corresponding B-tree data structures and related algorithms.

The template is parametrized by mean of the following parameters:

K - is a type of keys. This type has to provide the following methods:

default constructor copy constructor destructor

and operators:

= == < << (into ostream)

ORDER - is a utility class with the only usable enumeration specifying an order of the tree. Here is expected interface of this class:

class <name > ... { public: enum { N = <order> }; };

The reason why we're usingthis tricky way to specify the order instead of the non-class template parameter, like "unsigned ORDER", is that teh current version of the DDL compiler does not seem to support this kind of syntax.

Definition at line 78 of file CdbBdbSBtreeNode.hh.


Constructor & Destructor Documentation

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
CdbBdbSBtreeNode< K, ORDER >::CdbBdbSBtreeNode   [inline]
 

Definition at line 86 of file CdbBdbSBtreeNode.hh.

References d_True, CdbBdbSBtreeNode< K, ORDER >::isLeaf, CdbBdbSBtreeNode< K, ORDER >::n, and CdbBdbSBtreeNode< K, ORDER >::parent.

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
CdbBdbSBtreeNode< K, ORDER >::CdbBdbSBtreeNode d_ULong    p [inline]
 

Definition at line 87 of file CdbBdbSBtreeNode.hh.

References d_True, CdbBdbSBtreeNode< K, ORDER >::isLeaf, CdbBdbSBtreeNode< K, ORDER >::n, and CdbBdbSBtreeNode< K, ORDER >::parent.

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
CdbBdbSBtreeNode< K, ORDER >::CdbBdbSBtreeNode const CdbBdbSBtreeNode< K, ORDER > &    theNode [inline]
 

Definition at line 92 of file CdbBdbSBtreeNode.hh.

References CdbBdbSBtreeNode< K, ORDER >::copySelf().

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
CdbBdbSBtreeNode< K, ORDER >::~CdbBdbSBtreeNode   [inline]
 

The destructor.

NOTE: The destructor is NOT virtual because this is an embedded class.

Definition at line 102 of file CdbBdbSBtreeNode.hh.


Member Function Documentation

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
void CdbBdbSBtreeNode< K, ORDER >::copySelf const CdbBdbSBtreeNode< K, ORDER > &    theNode [inline, private]
 

Set up own context from specified one.

This helper method is used by constructors and assignment operator.

Definition at line 119 of file CdbBdbSBtreeNode.hh.

References CdbBdbSBtreeNode< K, ORDER >::child, CdbBdbSBtreeNode< K, ORDER >::isLeaf, CdbBdbSBtreeNode< K, ORDER >::key, CdbBdbSBtreeNode< K, ORDER >::n, and CdbBdbSBtreeNode< K, ORDER >::parent.

Referenced by CdbBdbSBtreeNode< K, ORDER >::CdbBdbSBtreeNode(), and CdbBdbSBtreeNode< K, ORDER >::operator=().

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
CdbBdbSBtreeNode<K,ORDER>& CdbBdbSBtreeNode< K, ORDER >::operator= const CdbBdbSBtreeNode< K, ORDER > &    theNode [inline]
 

Definition at line 107 of file CdbBdbSBtreeNode.hh.

References CdbBdbSBtreeNode< K, ORDER >::copySelf().


Member Data Documentation

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
d_ULong CdbBdbSBtreeNode< K, ORDER >::child[ 2 * ORDER::N + 1 ]
 

Definition at line 136 of file CdbBdbSBtreeNode.hh.

Referenced by CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromLeft(), CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromRight(), CdbBdbSBtreeNode< K, ORDER >::copySelf(), CdbBdbSAbsBtree< K, FCP, ORDER >::doFuzzySearch(), CdbBdbSAbsBtree< K, FCP, ORDER >::doSearch(), CdbBdbSAbsBtree< K, FCP, ORDER >::dump(), CdbBdbSBtreeP< K, FCP, ORDER >::extend_free_list(), CdbBdbSAbsBtree< K, FCP, ORDER >::insert(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertAndSplit(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertNoSplit(), CdbBdbSAbsBtree< K, FCP, ORDER >::join(), CdbBdbSAbsBtree< K, FCP, ORDER >::rebalance(), CdbBdbSBtreeP< K, FCP, ORDER >::release(), CdbBdbSAbsBtree< K, FCP, ORDER >::remove(), CdbBdbSAbsBtree< K, FCP, ORDER >::reset(), and CdbBdbSAbsBtree< K, FCP, ORDER >::searchLeafForInsert().

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
d_Boolean CdbBdbSBtreeNode< K, ORDER >::isLeaf
 

Definition at line 144 of file CdbBdbSBtreeNode.hh.

Referenced by CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromLeft(), CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromRight(), CdbBdbSBtreeNode< K, ORDER >::CdbBdbSBtreeNode(), CdbBdbSBtreeNode< K, ORDER >::copySelf(), CdbBdbSAbsBtree< K, FCP, ORDER >::doFuzzySearch(), CdbBdbSAbsBtree< K, FCP, ORDER >::doSearch(), CdbBdbSAbsBtree< K, FCP, ORDER >::dump(), CdbBdbSBtreeP< K, FCP, ORDER >::init_node(), CdbBdbSAbsBtree< K, FCP, ORDER >::insert(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertAndSplit(), CdbBdbSAbsBtree< K, FCP, ORDER >::join(), CdbBdbSAbsBtree< K, FCP, ORDER >::remove(), CdbBdbSAbsBtree< K, FCP, ORDER >::reset(), and CdbBdbSAbsBtree< K, FCP, ORDER >::searchLeafForInsert().

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
K CdbBdbSBtreeNode< K, ORDER >::key[ 2 * ORDER::N ]
 

Definition at line 140 of file CdbBdbSBtreeNode.hh.

Referenced by CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromLeft(), CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromRight(), CdbBdbSBtreeNode< K, ORDER >::copySelf(), CdbBdbSAbsBtree< K, FCP, ORDER >::doFuzzySearch(), CdbBdbSAbsBtree< K, FCP, ORDER >::doSearch(), CdbBdbSAbsBtree< K, FCP, ORDER >::dump(), CdbBdbSAbsBtree< K, FCP, ORDER >::insert(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertAndSplit(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertKeyOnly(), CdbBdbSAbsBtree< K, FCP, ORDER >::join(), CdbBdbSAbsBtree< K, FCP, ORDER >::remove(), CdbBdbSAbsBtree< K, FCP, ORDER >::removeFromLeaf(), CdbBdbSAbsBtree< K, FCP, ORDER >::search(), and CdbBdbSAbsBtree< K, FCP, ORDER >::searchLeafForInsert().

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
d_Octet CdbBdbSBtreeNode< K, ORDER >::n
 

Definition at line 149 of file CdbBdbSBtreeNode.hh.

Referenced by CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromLeft(), CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromRight(), CdbBdbSBtreeNode< K, ORDER >::CdbBdbSBtreeNode(), CdbBdbSBtreeNode< K, ORDER >::copySelf(), CdbBdbSAbsBtree< K, FCP, ORDER >::doFuzzySearch(), CdbBdbSAbsBtree< K, FCP, ORDER >::doSearch(), CdbBdbSAbsBtree< K, FCP, ORDER >::dump(), CdbBdbSBtreeP< K, FCP, ORDER >::init_node(), CdbBdbSAbsBtree< K, FCP, ORDER >::insert(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertAndSplit(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertKeyOnly(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertNoSplit(), CdbBdbSAbsBtree< K, FCP, ORDER >::join(), CdbBdbSAbsBtree< K, FCP, ORDER >::rebalance(), CdbBdbSAbsBtree< K, FCP, ORDER >::remove(), CdbBdbSAbsBtree< K, FCP, ORDER >::removeFromLeaf(), CdbBdbSAbsBtree< K, FCP, ORDER >::reset(), CdbBdbSAbsBtree< K, FCP, ORDER >::search(), and CdbBdbSAbsBtree< K, FCP, ORDER >::searchLeafForInsert().

template<class K, class ORDER = CdbBdbSBtreeDefaultOrder>
d_ULong CdbBdbSBtreeNode< K, ORDER >::parent
 

Definition at line 132 of file CdbBdbSBtreeNode.hh.

Referenced by CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromLeft(), CdbBdbSAbsBtree< K, FCP, ORDER >::borrowFromRight(), CdbBdbSBtreeNode< K, ORDER >::CdbBdbSBtreeNode(), CdbBdbSBtreeNode< K, ORDER >::copySelf(), CdbBdbSAbsBtree< K, FCP, ORDER >::dump(), CdbBdbSBtreeP< K, FCP, ORDER >::init_node(), CdbBdbSAbsBtree< K, FCP, ORDER >::insert(), CdbBdbSAbsBtree< K, FCP, ORDER >::insertAndSplit(), CdbBdbSAbsBtree< K, FCP, ORDER >::join(), operator<<(), CdbBdbSAbsBtree< K, FCP, ORDER >::rebalance(), and CdbBdbSAbsBtree< K, FCP, ORDER >::removeFromLeaf().


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

 


BaBar Public Site | SLAC | News | Links | Who's Who | Contact Us

Page Owner: Jacek Becla
Last Update: October 04, 2002