NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: NDN, CCN, CCNx, content centric networks
API Documentation
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ndnSIM
ndnSIM documentation
All Attributes
All GlobalValues
All LogComponents
All TraceSources
Todo List
Deprecated List
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
interest-filter.cpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
22
#include "
interest-filter.hpp
"
23
#include "
util/regex/regex-pattern-list-matcher.hpp
"
24
25
namespace
ndn
{
26
27
InterestFilter::InterestFilter
(
const
Name
& prefix)
28
: m_prefix(prefix)
29
{
30
}
31
32
InterestFilter::InterestFilter
(
const
char
* prefixUri)
33
: m_prefix(prefixUri)
34
{
35
}
36
37
InterestFilter::InterestFilter
(
const
std::string& prefixUri)
38
: m_prefix(prefixUri)
39
{
40
}
41
42
InterestFilter::InterestFilter
(
const
Name
& prefix,
const
std::string& regexFilter)
43
: m_prefix(prefix)
44
, m_regexFilter(make_shared<
RegexPatternListMatcher
>(regexFilter, nullptr))
45
{
46
}
47
48
InterestFilter::operator
const
Name
&()
const
49
{
50
if
(
hasRegexFilter
()) {
51
BOOST_THROW_EXCEPTION(
Error
(
"Please update InterestCallback to accept const InterestFilter&"
52
" (non-trivial InterestFilter is being used)"
));
53
}
54
return
m_prefix;
55
}
56
57
bool
58
InterestFilter::doesMatch
(
const
Name
&
name
)
const
59
{
60
return
m_prefix.
isPrefixOf
(name) &&
61
(!
hasRegexFilter
() ||
62
m_regexFilter->match(name, m_prefix.
size
(), name.
size
() - m_prefix.
size
()));
63
}
64
65
std::ostream&
66
operator<<
(std::ostream& os,
const
InterestFilter
& filter)
67
{
68
os << filter.
getPrefix
();
69
if
(filter.
hasRegexFilter
()) {
70
os <<
"?regex="
<< filter.
getRegexFilter
();
71
}
72
return
os;
73
}
74
75
}
// namespace ndn
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
ndn::InterestFilter::doesMatch
bool doesMatch(const Name &name) const
Check if specified Interest name matches the filter.
Definition:
interest-filter.cpp:58
ndn::InterestFilter::getRegexFilter
const RegexPatternListMatcher & getRegexFilter() const
Definition:
interest-filter.hpp:123
ndn::RegexPatternListMatcher
Definition:
regex-pattern-list-matcher.hpp:35
ndn::operator<<
std::ostream & operator<<(std::ostream &os, const Data &data)
Definition:
data.cpp:274
ndn::InterestFilter
declares the set of Interests a producer can serve, which starts with a name prefix, plus an optional regular expression
Definition:
interest-filter.hpp:35
ndn::InterestFilter::getPrefix
const Name & getPrefix() const
Definition:
interest-filter.hpp:111
ndn::Name::size
size_t size() const
Get number of components.
Definition:
name.hpp:154
ndn::Name
Represents an absolute name.
Definition:
name.hpp:42
ndn::Name::isPrefixOf
bool isPrefixOf(const Name &other) const
Check if this name is a prefix of another name.
Definition:
name.cpp:260
ndn::InterestFilter::InterestFilter
InterestFilter(const Name &prefix)
Construct an InterestFilter to match Interests by prefix.
Definition:
interest-filter.cpp:27
regex-pattern-list-matcher.hpp
ndn::name
Definition:
name-component.cpp:37
interest-filter.hpp
ndn::InterestFilter::hasRegexFilter
bool hasRegexFilter() const
Definition:
interest-filter.hpp:117
ndn::InterestFilter::Error
Definition:
interest-filter.hpp:38
ndnSIM
ndn-cxx
src
interest-filter.cpp
Generated on Thu Nov 2 2017 03:30:28 for ndnSIM by
1.8.11