Fairport  v1.0.38
fairport::btree_node_nonleaf< K, V > Class Template Reference

Represents a non-leaf node in a BTree structure. More...

#include <btree.h>

+ Inheritance diagram for fairport::btree_node_nonleaf< K, V >:
+ Collaboration diagram for fairport::btree_node_nonleaf< K, V >:

List of all members.

Public Member Functions

virtual ~btree_node_nonleaf ()
const V & lookup (const K &key) const

Protected Member Functions

virtual btree_node< K, V > * get_child (uint i)=0
 Returns the child btree_node at the requested location.
virtual const btree_node< K, V > * get_child (uint i) const =0
 Returns the child btree_node at the requested location.
void first (btree_iter_impl< K, V > &iter) const
 Positions the iterator at the first element on this tree.
void last (btree_iter_impl< K, V > &iter) const
 Positions the iterator at the "end" element.
void next (btree_iter_impl< K, V > &iter) const
 Moves the iterator to the next element.
void prev (btree_iter_impl< K, V > &iter) const
 Moves the iterator to the previous element.

Friends

class const_btree_node_iter< K, V >
class btree_node_leaf< K, V >

Detailed Description

template<typename K, typename V>
class fairport::btree_node_nonleaf< K, V >

Represents a non-leaf node in a BTree structure.

Classes which model a non-leaf of a BTree structure inherit from this. They have a total of four simple virtual functions to implement:

Definition at line 171 of file btree.h.


Constructor & Destructor Documentation

template<typename K, typename V>
virtual fairport::btree_node_nonleaf< K, V >::~btree_node_nonleaf ( ) [inline, virtual]

Definition at line 174 of file btree.h.


Member Function Documentation

template<typename K, typename V>
void fairport::btree_node_nonleaf< K, V >::first ( btree_iter_impl< K, V > &  iter) const [protected, virtual]

Positions the iterator at the first element on this tree.

Parameters:
[in,out]iterIterator state class

Implements fairport::btree_node< K, V >.

Definition at line 369 of file btree.h.

template<typename K, typename V>
virtual btree_node<K,V>* fairport::btree_node_nonleaf< K, V >::get_child ( uint  i) [protected, pure virtual]

Returns the child btree_node at the requested location.

Parameters:
[in]iThe position at which to get the child
Returns:
a non-owning pointer of the child btree_node

Implemented in fairport::subnode_nonleaf_block, fairport::bth_nonleaf_node< K, V >, and fairport::bt_nonleaf_page< K, V >.

template<typename K, typename V>
virtual const btree_node<K,V>* fairport::btree_node_nonleaf< K, V >::get_child ( uint  i) const [protected, pure virtual]

Returns the child btree_node at the requested location.

Parameters:
[in]iThe position at which to get the child
Returns:
a non-owning pointer of the child btree_node

Implemented in fairport::subnode_nonleaf_block, fairport::bth_nonleaf_node< K, V >, and fairport::bt_nonleaf_page< K, V >.

template<typename K, typename V>
void fairport::btree_node_nonleaf< K, V >::last ( btree_iter_impl< K, V > &  iter) const [protected, virtual]

Positions the iterator at the "end" element.

Parameters:
[in,out]iterIterator state class

Implements fairport::btree_node< K, V >.

Definition at line 376 of file btree.h.

template<typename K, typename V >
const V & fairport::btree_node_nonleaf< K, V >::lookup ( const K &  key) const [virtual]

Looks up the associated value for a given key.

This will defer to child btree_nodes as appropriate

Exceptions:
key_not_found<K>if the requested key is not in this btree
Parameters:
[in]keyThe key to lookup
Returns:
The associated value

Implements fairport::btree_node< K, V >.

Definition at line 358 of file btree.h.

template<typename K, typename V>
void fairport::btree_node_nonleaf< K, V >::next ( btree_iter_impl< K, V > &  iter) const [protected, virtual]

Moves the iterator to the next element.

Parameters:
[in,out]iterIterator state class

Implements fairport::btree_node< K, V >.

Definition at line 383 of file btree.h.

template<typename K, typename V>
void fairport::btree_node_nonleaf< K, V >::prev ( btree_iter_impl< K, V > &  iter) const [protected, virtual]

Moves the iterator to the previous element.

Parameters:
[in,out]iterIterator state class

Implements fairport::btree_node< K, V >.

Definition at line 404 of file btree.h.


Friends And Related Function Documentation

template<typename K, typename V>
friend class btree_node_leaf< K, V > [friend]

Definition at line 191 of file btree.h.

template<typename K, typename V>
friend class const_btree_node_iter< K, V > [friend]

Reimplemented from fairport::btree_node< K, V >.

Definition at line 190 of file btree.h.


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