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
name-relation.cpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2013-2017 Regents of the University of California.
4
*
5
* This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
6
*
7
* ndn-cxx library is free software: you can redistribute it and/or modify it under the
8
* terms of the GNU Lesser General Public License as published by the Free Software
9
* Foundation, either version 3 of the License, or (at your option) any later version.
10
*
11
* ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
12
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14
*
15
* You should have received copies of the GNU General Public License and GNU Lesser
16
* General Public License along with ndn-cxx, e.g., in COPYING.md file. If not, see
17
* <http://www.gnu.org/licenses/>.
18
*
19
* See AUTHORS.md for complete list of ndn-cxx authors and contributors.
20
*/
21
22
#include "
name-relation.hpp
"
23
24
#include <boost/algorithm/string.hpp>
25
26
namespace
ndn
{
27
namespace
security
{
28
namespace
v2 {
29
namespace
validator_config {
30
31
std::ostream&
32
operator<<
(std::ostream& os,
NameRelation
relation)
33
{
34
switch
(relation) {
35
case
NameRelation::EQUAL
:
36
return
os <<
"equal"
;
37
case
NameRelation::IS_PREFIX_OF
:
38
return
os <<
"is-prefix-of"
;
39
case
NameRelation::IS_STRICT_PREFIX_OF
:
40
return
os <<
"is-strict-prefix-of"
;
41
}
42
return
os;
43
}
44
45
bool
46
checkNameRelation
(
NameRelation
relation,
const
Name
& name1,
const
Name
& name2)
47
{
48
switch
(relation) {
49
case
NameRelation::EQUAL
:
50
return
name1 == name2;
51
case
NameRelation::IS_PREFIX_OF
:
52
return
name1.
isPrefixOf
(name2);
53
case
NameRelation::IS_STRICT_PREFIX_OF
:
54
return
name1.
isPrefixOf
(name2) && name1.
size
() < name2.
size
();
55
}
56
return
false
;
57
}
58
59
NameRelation
60
getNameRelationFromString
(
const
std::string& relationString)
61
{
62
if
(boost::iequals(relationString,
"equal"
)) {
63
return
NameRelation::EQUAL
;
64
}
65
else
if
(boost::iequals(relationString,
"is-prefix-of"
)) {
66
return
NameRelation::IS_PREFIX_OF
;
67
}
68
else
if
(boost::iequals(relationString,
"is-strict-prefix-of"
)) {
69
return
NameRelation::IS_STRICT_PREFIX_OF
;
70
}
71
else
{
72
BOOST_THROW_EXCEPTION(
Error
(
"Unsupported relation: "
+ relationString));
73
}
74
}
75
76
}
// namespace validator_config
77
}
// namespace v2
78
}
// namespace security
79
}
// namespace ndn
ndn::security::v2::validator_config::NameRelation
NameRelation
Definition:
name-relation.hpp:33
ndn
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-strategy-choice-helper.hpp:34
ndn::security::v2::validator_config::operator<<
std::ostream & operator<<(std::ostream &os, NameRelation relation)
Definition:
name-relation.cpp:32
ndn::security::v2::validator_config::NameRelation::IS_PREFIX_OF
ndn::security::v2::validator_config::NameRelation::EQUAL
websocketpp::transport::asio::socket::error::security
Catch-all error for security policy errors that don't fit in other categories.
Definition:
base.hpp:79
ndn::security::v2::validator_config::checkNameRelation
bool checkNameRelation(NameRelation relation, const Name &name1, const Name &name2)
check whether name1 and name2 satisfies relation
Definition:
name-relation.cpp:46
ndn::security::v2::validator_config::NameRelation::IS_STRICT_PREFIX_OF
ndn::security::v2::validator_config::getNameRelationFromString
NameRelation getNameRelationFromString(const std::string &relationString)
convert relationString to NameRelation
Definition:
name-relation.cpp:60
name-relation.hpp
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::security::v2::validator_config::Error
Definition:
common.hpp:37
ndnSIM
ndn-cxx
src
security
v2
validator-config
name-relation.cpp
Generated on Thu Nov 2 2017 03:30:29 for ndnSIM by
1.8.11