24 #ifndef NDN_UTIL_REGEX_COMPONENT_SET_MATCHER_HPP    25 #define NDN_UTIL_REGEX_COMPONENT_SET_MATCHER_HPP    27 #include "../../common.hpp"    61   extractComponent(
size_t index);
    64   compileSingleComponent();
    67   compileMultipleComponents(
size_t start, 
size_t lastIndex);
    70   typedef std::set<shared_ptr<RegexComponentMatcher> > ComponentsSet;
    71   ComponentsSet m_components;
    78                                                    shared_ptr<RegexBackrefManager> backrefManager)
    99     return compileSingleComponent();
   102       size_t lastIndex = 
m_expr.size() - 1;
   103       if (
']' != 
m_expr[lastIndex])
   108         m_isInclusion = 
false;
   109         compileMultipleComponents(2, lastIndex);
   112         compileMultipleComponents(1, lastIndex);
   122 RegexComponentSetMatcher::compileSingleComponent()
   124   size_t end = extractComponent(1);
   132       shared_ptr<RegexComponentMatcher> component =
   135       m_components.insert(component);
   140 RegexComponentSetMatcher::compileMultipleComponents(
size_t start, 
size_t lastIndex)
   142   size_t index = start;
   143   size_t tempIndex = start;
   145   while (index < lastIndex) {
   149     tempIndex = index + 1;
   150     index = extractComponent(tempIndex);
   152     shared_ptr<RegexComponentMatcher> component =
   153       make_shared<RegexComponentMatcher>(
m_expr.substr(tempIndex, index - tempIndex - 1),
   156     m_components.insert(component);
   159   if (index != lastIndex)
   166   bool isMatched = 
false;
   175        it != m_components.end();
   178       if ((*it)->match(name, offset, len))
   187   if (m_isInclusion ? isMatched : !isMatched)
   197 RegexComponentSetMatcher::extractComponent(
size_t index)
   202   while (lcount > rcount) {
   225 #endif // NDN_UTIL_REGEX_COMPONENT_SET_MATCHER_HPP Copyright (c) 2011-2015 Regents of the University of California. 
 
virtual ~RegexComponentSetMatcher()
 
Table::const_iterator iterator
 
shared_ptr< RegexBackrefManager > m_backrefManager
 
std::vector< name::Component > m_matchResult
 
Represents an absolute name. 
 
RegexComponentSetMatcher(const std::string &expr, shared_ptr< RegexBackrefManager > backrefManager)
Create a RegexComponentSetMatcher matcher from expr. 
 
virtual void compile()
Compile the regular expression to generate the more matchers when necessary. 
 
virtual bool match(const Name &name, size_t offset, size_t len=1)
 
const Component & get(ssize_t i) const 
Get the component at the given index.