All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
regex-backref-manager.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
8 #ifndef NDN_UTIL_REGEX_BACKREF_MANAGER_HPP
9 #define NDN_UTIL_REGEX_BACKREF_MANAGER_HPP
10 
11 #include "../../common.hpp"
12 
13 namespace ndn {
14 
15 class RegexMatcher;
16 
18 {
19 public:
21 
22  virtual ~RegexBackrefManager();
23 
24  int
25  pushRef(shared_ptr<RegexMatcher> matcher);
26 
27  void
28  popRef();
29 
30  size_t
31  size();
32 
33  shared_ptr<RegexMatcher>
34  getBackRef(int i);
35 
36 private:
37  std::vector<shared_ptr<RegexMatcher> > m_backRefs;
38 };
39 
40 
42 {
43  m_backRefs.clear();
44 }
45 
46 inline int
47 RegexBackrefManager::pushRef(shared_ptr<RegexMatcher> matcher)
48 {
49  size_t last = m_backRefs.size();
50  m_backRefs.push_back(matcher);
51 
52  return last;
53 }
54 
55 inline void
57 {
58  m_backRefs.pop_back();
59 }
60 
61 inline size_t
63 {
64  return m_backRefs.size();
65 }
66 
67 inline shared_ptr<RegexMatcher>
69 {
70  return m_backRefs[i];
71 }
72 
73 
74 } // namespace ndn
75 
76 #endif // NDN_UTIL_REGEX_BACKREF_MANAGER_HPP
int pushRef(shared_ptr< RegexMatcher > matcher)
shared_ptr< RegexMatcher > getBackRef(int i)