CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
edm::TrieNodeIter< T > Class Template Reference

#include <Trie.h>

Inheritance diagram for edm::TrieNodeIter< T >:

Public Types

typedef TrieNode< T > const node_base
 
typedef TrieNodeIter< Tself
 

Public Member Functions

unsigned char label () const
 
 TrieNodeIter ()
 
 TrieNodeIter (node_base *p)
 

Private Member Functions

node_basedereference () const
 
bool equal (self const &other) const
 
void increment ()
 

Private Attributes

unsigned char m_label
 
node_basem_node
 

Friends

class boost::iterator_core_access
 

Detailed Description

template<typename T>
class edm::TrieNodeIter< T >

Definition at line 66 of file Trie.h.

Member Typedef Documentation

template<typename T>
typedef TrieNode<T> const edm::TrieNodeIter< T >::node_base

Definition at line 231 of file Trie.h.

template<typename T>
typedef TrieNodeIter<T> edm::TrieNodeIter< T >::self

Definition at line 230 of file Trie.h.

Constructor & Destructor Documentation

template<typename T>
edm::TrieNodeIter< T >::TrieNodeIter ( )
inline

Definition at line 232 of file Trie.h.

232 : m_node(nullptr), m_label(0) {}
unsigned char m_label
Definition: Trie.h:251
node_base * m_node
Definition: Trie.h:250
template<typename T>
edm::TrieNodeIter< T >::TrieNodeIter ( node_base p)
inlineexplicit

Definition at line 234 of file Trie.h.

234 : m_node(p ? p->subNode() : nullptr), m_label(p ? p->subNodeLabel() : 0) {}
unsigned char m_label
Definition: Trie.h:251
node_base * m_node
Definition: Trie.h:250

Member Function Documentation

template<typename T>
node_base& edm::TrieNodeIter< T >::dereference ( ) const
inlineprivate

Definition at line 248 of file Trie.h.

References edm::TrieNodeIter< T >::m_node.

248 { return *m_node; }
node_base * m_node
Definition: Trie.h:250
template<typename T>
bool edm::TrieNodeIter< T >::equal ( self const &  other) const
inlineprivate

Definition at line 246 of file Trie.h.

References edm::TrieNodeIter< T >::m_node.

246 { return this->m_node == other.m_node; }
node_base * m_node
Definition: Trie.h:250
template<typename T>
void edm::TrieNodeIter< T >::increment ( )
inlineprivate

Definition at line 241 of file Trie.h.

References edm::TrieNode< T >::brother(), edm::TrieNode< T >::brotherLabel(), edm::TrieNodeIter< T >::m_label, and edm::TrieNodeIter< T >::m_node.

241  {
243  m_node = m_node->brother();
244  }
unsigned char m_label
Definition: Trie.h:251
const TrieNode< T > * brother() const
get brother (return 0x0 this node has no brother)
Definition: Trie.h:363
unsigned char brotherLabel() const
get brother label
Definition: Trie.h:394
node_base * m_node
Definition: Trie.h:250
template<typename T>
unsigned char edm::TrieNodeIter< T >::label ( ) const
inline

Definition at line 236 of file Trie.h.

References edm::TrieNodeIter< T >::m_label.

236 { return m_label; }
unsigned char m_label
Definition: Trie.h:251

Friends And Related Function Documentation

template<typename T>
friend class boost::iterator_core_access
friend

Definition at line 239 of file Trie.h.

Member Data Documentation

template<typename T>
unsigned char edm::TrieNodeIter< T >::m_label
private

Definition at line 251 of file Trie.h.

Referenced by edm::TrieNodeIter< T >::increment(), and edm::TrieNodeIter< T >::label().

template<typename T>
node_base* edm::TrieNodeIter< T >::m_node
private