NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::RegexMatcher Class Referenceabstract

#include <regex-matcher.hpp>

Inheritance diagram for ndn::RegexMatcher:
Collaboration diagram for ndn::RegexMatcher:

Classes

class  Error
 

Public Types

enum  RegexExprType {
  EXPR_TOP, EXPR_PATTERN_LIST, EXPR_REPEAT_PATTERN, EXPR_BACKREF,
  EXPR_COMPONENT_SET, EXPR_COMPONENT, EXPR_PSEUDO
}
 

Public Member Functions

 RegexMatcher (const std::string &expr, const RegexExprType &type, shared_ptr< RegexBackrefManager > backrefManager=shared_ptr< RegexBackrefManager >())
 
virtual ~RegexMatcher ()
 
virtual bool match (const Name &name, size_t offset, size_t len)
 
const std::vector< name::Component > & getMatchResult () const
 get the matched name components More...
 
const std::string & getExpr () const
 

Protected Member Functions

virtual void compile ()=0
 Compile the regular expression to generate the more matchers when necessary. More...
 

Protected Attributes

const std::string m_expr
 
const RegexExprType m_type
 
shared_ptr< RegexBackrefManagerm_backrefManager
 
std::vector< shared_ptr< RegexMatcher > > m_matchers
 
std::vector< name::Componentm_matchResult
 

Detailed Description

Definition at line 34 of file regex-matcher.hpp.

Member Enumeration Documentation

◆ RegexExprType

Enumerator
EXPR_TOP 
EXPR_PATTERN_LIST 
EXPR_REPEAT_PATTERN 
EXPR_BACKREF 
EXPR_COMPONENT_SET 
EXPR_COMPONENT 
EXPR_PSEUDO 

Definition at line 47 of file regex-matcher.hpp.

Constructor & Destructor Documentation

◆ RegexMatcher()

ndn::RegexMatcher::RegexMatcher ( const std::string &  expr,
const RegexExprType type,
shared_ptr< RegexBackrefManager backrefManager = shared_ptr<RegexBackrefManager>() 
)
inline

Definition at line 117 of file regex-matcher.hpp.

References m_backrefManager.

◆ ~RegexMatcher()

ndn::RegexMatcher::~RegexMatcher ( )
inlinevirtual

Definition at line 129 of file regex-matcher.hpp.

Member Function Documentation

◆ match()

bool ndn::RegexMatcher::match ( const Name name,
size_t  offset,
size_t  len 
)
inlinevirtual

◆ getMatchResult()

const std::vector<name::Component>& ndn::RegexMatcher::getMatchResult ( ) const
inline

get the matched name components

Returns
the matched name components

Definition at line 72 of file regex-matcher.hpp.

References m_matchResult.

◆ getExpr()

const std::string& ndn::RegexMatcher::getExpr ( ) const
inline

Definition at line 78 of file regex-matcher.hpp.

References compile(), and m_expr.

Referenced by ndn::operator<<().

◆ compile()

virtual void ndn::RegexMatcher::compile ( )
protectedpure virtual

Compile the regular expression to generate the more matchers when necessary.

Implemented in ndn::RegexComponentMatcher, ndn::RegexTopMatcher, ndn::RegexComponentSetMatcher, ndn::RegexRepeatMatcher, ndn::RegexBackrefMatcher, ndn::RegexPatternListMatcher, and ndn::RegexPseudoMatcher.

Referenced by getExpr().

Member Data Documentation

◆ m_expr

◆ m_type

const RegexExprType ndn::RegexMatcher::m_type
protected

Definition at line 97 of file regex-matcher.hpp.

◆ m_backrefManager

◆ m_matchers

std::vector<shared_ptr<RegexMatcher> > ndn::RegexMatcher::m_matchers
protected

◆ m_matchResult


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