45 using SigNonce = std::vector<uint8_t>;
146 checkPolicy(
const Data& data,
const shared_ptr<ValidationState>& state,
155 checkIncomingInterest(
const shared_ptr<ValidationState>& state,
const Interest& interest);
158 insertRecord(
const Name& keyName,
159 std::optional<time::system_clock::time_point> timestamp,
160 std::optional<uint64_t> seqNum,
161 std::optional<SigNonce> nonce);
166 using NonceContainer = boost::multi_index_container<
168 boost::multi_index::indexed_by<
169 boost::multi_index::hashed_unique<
170 boost::multi_index::tag<NonceSet>,
171 boost::multi_index::identity<SigNonce>
173 boost::multi_index::sequenced<
174 boost::multi_index::tag<NonceList>
179 struct LastInterestRecord
181 LastInterestRecord(
const Name& keyName,
182 std::optional<time::system_clock::time_point> timestamp,
183 std::optional<uint64_t> seqNum)
185 , timestamp(timestamp)
187 , lastRefreshed(time::steady_clock::now())
192 std::optional<time::system_clock::time_point> timestamp;
193 std::optional<uint64_t> seqNum;
194 NonceContainer observedNonces;
198 using Container = boost::multi_index_container<
200 boost::multi_index::indexed_by<
201 boost::multi_index::ordered_unique<
202 boost::multi_index::member<LastInterestRecord, Name, &LastInterestRecord::keyName>
204 boost::multi_index::ordered_non_unique<
206 &LastInterestRecord::lastRefreshed>
211 Container m_container;
212 Container::nth_index<0>::type& m_byKeyName;
213 Container::nth_index<1>::type& m_byLastRefreshed;