ndn::security::v2::validator_config::Rule Class Reference

#include <ndn-cxx/security/v2/validator-config/rule.hpp>

+ Inheritance diagram for ndn::security::v2::validator_config::Rule:
+ Collaboration diagram for ndn::security::v2::validator_config::Rule:

Public Member Functions

 Rule (const std::string &id, uint32_t pktType)
 
void addChecker (unique_ptr< Checker > checker)
 
void addFilter (unique_ptr< Filter > filter)
 
bool check (uint32_t pktType, const Name &pktName, const Name &klName, const shared_ptr< ValidationState > &state) const
 check if packet satisfies rule's condition More...
 
const std::string & getId () const
 
uint32_t getPktType () const
 
bool match (uint32_t pktType, const Name &pktName) const
 check if the packet name matches rule's filter More...
 

Static Public Member Functions

static unique_ptr< Rulecreate (const ConfigSection &configSection, const std::string &configFilename)
 create a rule from configuration section More...
 

Detailed Description

Definition at line 36 of file rule.hpp.

Constructor & Destructor Documentation

ndn::security::v2::validator_config::Rule::Rule ( const std::string &  id,
uint32_t  pktType 
)

Definition at line 34 of file rule.cpp.

Member Function Documentation

void ndn::security::v2::validator_config::Rule::addChecker ( unique_ptr< Checker checker)

Definition at line 47 of file rule.cpp.

void ndn::security::v2::validator_config::Rule::addFilter ( unique_ptr< Filter filter)

Definition at line 41 of file rule.cpp.

bool ndn::security::v2::validator_config::Rule::check ( uint32_t  pktType,
const Name pktName,
const Name klName,
const shared_ptr< ValidationState > &  state 
) const

check if packet satisfies rule's condition

Parameters
pktTypetlv::Interest or tlv::Data
pktNamepacket name, for signed Interests the last two components are not removed
klNameKeyLocator name
stateValidation state
Return values
falsepacket violates at least one checker. Will call state::fail() with proper code and message.
truepacket satisfies all checkers, further validation is needed
Exceptions
Errorthe supplied pktType doesn't match one for which the rule is designed

Definition at line 76 of file rule.cpp.

unique_ptr< Rule > ndn::security::v2::validator_config::Rule::create ( const ConfigSection configSection,
const std::string &  configFilename 
)
static

create a rule from configuration section

Parameters
configSectionThe section containing the definition of checker.
configFilenameThe configuration file name.
Returns
a rule created from configuration

Definition at line 99 of file rule.cpp.

const std::string& ndn::security::v2::validator_config::Rule::getId ( ) const
inline

Definition at line 42 of file rule.hpp.

uint32_t ndn::security::v2::validator_config::Rule::getPktType ( ) const
inline

Definition at line 48 of file rule.hpp.

bool ndn::security::v2::validator_config::Rule::match ( uint32_t  pktType,
const Name pktName 
) const

check if the packet name matches rule's filter

If no filters were added, the rule matches everything.

Parameters
pktTypetlv::Interest or tlv::Data
pktNamepacket name, for signed Interests the last two components are not removed
Return values
trueIf at least one filter matches pktName
falseIf none of the filters match pktName
Exceptions
Errorthe supplied pktType doesn't match one for which the rule is designed

Definition at line 53 of file rule.cpp.