registered-prefix-table.hpp
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
22 #ifndef NDN_REGISTERED_PREFIX_TABLE_HPP
23 #define NDN_REGISTERED_PREFIX_TABLE_HPP
24 
25 #include <ndn-cpp/face.hpp>
26 #include "interest-filter-table.hpp"
27 
28 namespace ndn {
29 
35 public:
42  : interestFilterTable_(interestFilterTable)
43  {
44  }
45 
57  bool
58  add(uint64_t registeredPrefixId, const ptr_lib::shared_ptr<const Name>& prefix,
59  uint64_t relatedInterestFilterId);
60 
70  void
71  removeRegisteredPrefix(uint64_t registeredPrefixId);
72 
73 private:
80  class Entry {
81  public:
90  Entry
91  (uint64_t registeredPrefixId, const ptr_lib::shared_ptr<const Name>& prefix,
92  uint64_t relatedInterestFilterId)
93  : registeredPrefixId_(registeredPrefixId), prefix_(prefix),
94  relatedInterestFilterId_(relatedInterestFilterId)
95  {
96  }
97 
102  uint64_t
103  getRegisteredPrefixId() { return registeredPrefixId_; }
104 
109  const ptr_lib::shared_ptr<const Name>&
110  getPrefix() { return prefix_; }
111 
116  uint64_t
117  getRelatedInterestFilterId() { return relatedInterestFilterId_; }
118 
119  private:
120  uint64_t registeredPrefixId_;
121  ptr_lib::shared_ptr<const Name> prefix_;
122  uint64_t relatedInterestFilterId_;
123  };
124 
125  std::vector<ptr_lib::shared_ptr<Entry> > table_;
126  InterestFilterTable& interestFilterTable_;
127  std::vector<uint64_t> removeRequests_;
128 };
129 
130 }
131 
132 #endif
Copyright (C) 2013-2016 Regents of the University of California.
Definition: common.hpp:35
A RegisteredPrefixTable is an internal class to hold a list of registered prefixes with information n...
Definition: registered-prefix-table.hpp:34
RegisteredPrefixTable(InterestFilterTable &interestFilterTable)
Create a new RegisteredPrefixTable with an empty table.
Definition: registered-prefix-table.hpp:41
An InterestFilterTable is an internal class to hold a list of entries with an interest Filter and its...
Definition: interest-filter-table.hpp:33
void removeRegisteredPrefix(uint64_t registeredPrefixId)
Remove the registered prefix entry with the registeredPrefixId from the registered prefix table...
Definition: registered-prefix-table.cpp:53
bool add(uint64_t registeredPrefixId, const ptr_lib::shared_ptr< const Name > &prefix, uint64_t relatedInterestFilterId)
Add a new entry to the table.
Definition: registered-prefix-table.cpp:34