Electroneum
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
crow::Trie Class Reference

#include <routing.h>

Classes

struct  Node
 

Public Member Functions

 Trie ()
 
void validate ()
 
std::pair< unsigned, routing_paramsfind (const std::string &req_url, const Node *node=nullptr, unsigned pos=0, routing_params *params=nullptr) const
 
void add (const std::string &url, unsigned rule_index)
 
void debug_print ()
 

Private Member Functions

void optimizeNode (Node *node)
 
void optimize ()
 
void debug_node_print (Node *n, int level)
 
const Nodehead () const
 
Nodehead ()
 
unsigned new_node ()
 

Private Attributes

std::vector< Nodenodes_
 

Constructor & Destructor Documentation

◆ Trie()

crow::Trie::Trie ( )
inline

Member Function Documentation

◆ add()

void crow::Trie::add ( const std::string &  url,
unsigned  rule_index 
)
inline

◆ debug_node_print()

void crow::Trie::debug_node_print ( Node n,
int  level 
)
inlineprivate

◆ debug_print()

void crow::Trie::debug_print ( )
inline

◆ find()

std::pair<unsigned, routing_params> crow::Trie::find ( const std::string &  req_url,
const Node node = nullptr,
unsigned  pos = 0,
routing_params params = nullptr 
) const
inline

◆ head() [1/2]

const Node* crow::Trie::head ( ) const
inlineprivate

◆ head() [2/2]

Node* crow::Trie::head ( )
inlineprivate

◆ new_node()

unsigned crow::Trie::new_node ( )
inlineprivate

◆ optimize()

void crow::Trie::optimize ( )
inlineprivate

◆ optimizeNode()

void crow::Trie::optimizeNode ( Node node)
inlineprivate

◆ validate()

void crow::Trie::validate ( )
inline

Member Data Documentation

◆ nodes_

std::vector<Node> crow::Trie::nodes_
private

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