All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
ndn-regex-pattern-list-matcher.hpp
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
23 #ifndef NDN_NDN_REGEX_PATTERN_LIST_MATCHER_HPP
24 #define NDN_NDN_REGEX_PATTERN_LIST_MATCHER_HPP
25 
26 #include "ndn-regex-matcher-base.hpp"
27 
28 namespace ndn {
29 
30 class NdnRegexPatternListMatcher;
31 
32 class NdnRegexPatternListMatcher : public NdnRegexMatcherBase {
33 public:
35  (const std::string& expr,
36  ptr_lib::shared_ptr<NdnRegexBackrefManager> backrefManager)
37  : NdnRegexMatcherBase(expr, NDN_REGEX_EXPR_PATTERN_LIST, backrefManager)
38  {
39  compile();
40  }
41 
42  virtual
44 
45 protected:
46  virtual void
47  compile();
48 
49 private:
50  bool
51  extractPattern(size_t index, size_t* next);
52 
53  size_t
54  extractSubPattern(const char left, const char right, size_t index);
55 
56  size_t
57  extractRepetition(size_t index);
58 };
59 
60 }
61 
62 #endif
Definition: ndn-regex-pattern-list-matcher.hpp:32