22 #ifndef NDN_CXX_SECURITY_VALIDATION_POLICY_COMMAND_INTEREST_HPP
23 #define NDN_CXX_SECURITY_VALIDATION_POLICY_COMMAND_INTEREST_HPP
27 #include <boost/multi_index_container.hpp>
28 #include <boost/multi_index/ordered_index.hpp>
29 #include <boost/multi_index/sequenced_index.hpp>
30 #include <boost/multi_index/key_extractors.hpp>
107 checkPolicy(
const Data& data,
const shared_ptr<ValidationState>& state,
115 static std::tuple<bool, Name, time::system_clock::time_point>
116 parseCommandInterest(
const Interest& interest,
const shared_ptr<ValidationState>& state);
122 checkTimestamp(
const shared_ptr<ValidationState>& state,
131 struct LastTimestampRecord
138 using Container = boost::multi_index_container<
140 boost::multi_index::indexed_by<
141 boost::multi_index::ordered_unique<
142 boost::multi_index::member<LastTimestampRecord, Name, &LastTimestampRecord::keyName>
144 boost::multi_index::sequenced<>
147 using Index = Container::nth_index<0>::type;
148 using Queue = Container::nth_index<1>::type;
150 Container m_container;
Represents a Data packet.
Represents an Interest packet.
Represents an absolute name.
time::nanoseconds gracePeriod
Tolerance of initial timestamp.
ssize_t maxRecords
Max number of distinct public keys of which to record the last timestamp.
time::nanoseconds recordLifetime
Max lifetime of a last timestamp record.
Validation policy for stop-and-wait command Interests.
void checkPolicy(const Data &data, const shared_ptr< ValidationState > &state, const ValidationContinuation &continueValidation) override
Check data against the policy.
ValidationPolicyCommandInterest(unique_ptr< ValidationPolicy > inner, const Options &options={})
Constructor.
Abstraction that implements a validation policy for Interest and Data packets.
std::function< void(const shared_ptr< CertificateRequest > &certRequest, const shared_ptr< ValidationState > &state)> ValidationContinuation
::boost::chrono::time_point< steady_clock > time_point
::boost::chrono::time_point< system_clock > time_point
Contains the ndn-cxx security framework.
::boost::chrono::nanoseconds nanoseconds