NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
client-control-strategy.cpp
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2014-2017, Regents of the University of California,
4
* Arizona Board of Regents,
5
* Colorado State University,
6
* University Pierre & Marie Curie, Sorbonne University,
7
* Washington University in St. Louis,
8
* Beijing Institute of Technology,
9
* The University of Memphis.
10
*
11
* This file is part of NFD (Named Data Networking Forwarding Daemon).
12
* See AUTHORS.md for complete list of NFD authors and contributors.
13
*
14
* NFD is free software: you can redistribute it and/or modify it under the terms
15
* of the GNU General Public License as published by the Free Software Foundation,
16
* either version 3 of the License, or (at your option) any later version.
17
*
18
* NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
19
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
20
* PURPOSE. See the GNU General Public License for more details.
21
*
22
* You should have received a copy of the GNU General Public License along with
23
* NFD, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
24
*/
25
26
#include "
client-control-strategy.hpp
"
27
#include "
core/logger.hpp
"
28
29
namespace
nfd
{
30
namespace
fw {
31
32
NFD_LOG_INIT
(
"ClientControlStrategy"
);
33
NFD_REGISTER_STRATEGY
(
ClientControlStrategy
);
34
35
ClientControlStrategy::ClientControlStrategy
(
Forwarder
& forwarder,
const
Name
&
name
)
36
:
BestRouteStrategyBase
(forwarder)
37
{
38
ParsedInstanceName
parsed =
parseInstanceName
(
name
);
39
if
(!parsed.
parameters
.empty()) {
40
BOOST_THROW_EXCEPTION(std::invalid_argument(
"ClientControlStrategy does not accept parameters"
));
41
}
42
if
(parsed.
version
&& *parsed.
version
!=
getStrategyName
()[-1].toVersion()) {
43
BOOST_THROW_EXCEPTION(std::invalid_argument(
44
"ClientControlStrategy does not support version "
+
to_string
(*parsed.
version
)));
45
}
46
this->
setInstanceName
(
makeInstanceName
(name,
getStrategyName
()));
47
48
NFD_LOG_WARN
(
"NextHopFaceId field is honored universally and "
49
"it's unnecessary to set client-control strategy."
);
50
}
51
52
const
Name
&
53
ClientControlStrategy::getStrategyName
()
54
{
55
static
Name
strategyName(
"/localhost/nfd/strategy/client-control/%FD%02"
);
56
return
strategyName;
57
}
58
59
}
// namespace fw
60
}
// namespace nfd
nfd::fw::Strategy::parseInstanceName
static ParsedInstanceName parseInstanceName(const Name &input)
parse a strategy instance name
Definition:
strategy.cpp:121
nfd::fw::ClientControlStrategy
identical to BestRouteStrategy v1, for backwards compatibility
Definition:
client-control-strategy.hpp:37
nfd::fw::Strategy::ParsedInstanceName::parameters
PartialName parameters
parameter components
Definition:
strategy.hpp:270
nfd::Forwarder
main class of NFD
Definition:
forwarder.hpp:54
nfd::fw::ClientControlStrategy::getStrategyName
static const Name & getStrategyName()
Definition:
client-control-strategy.cpp:53
nfd::fw::Strategy::setInstanceName
void setInstanceName(const Name &name)
set strategy instance name
Definition:
strategy.hpp:297
nfd::fw::Strategy::ParsedInstanceName
Definition:
strategy.hpp:266
nfd::fw::Strategy::ParsedInstanceName::version
ndn::optional< uint64_t > version
whether strategyName contains a version component
Definition:
strategy.hpp:269
nfd
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-common.hpp:40
nfd::fw::NFD_REGISTER_STRATEGY
NFD_REGISTER_STRATEGY(AccessStrategy)
ndn::Name
Represents an absolute name.
Definition:
name.hpp:42
nfd::fw::BestRouteStrategyBase
Definition:
best-route-strategy.hpp:34
NFD_LOG_WARN
#define NFD_LOG_WARN(expression)
Definition:
logger.hpp:58
nfd::fw::Strategy::makeInstanceName
static Name makeInstanceName(const Name &input, const Name &strategyName)
construct a strategy instance name
Definition:
strategy.cpp:132
client-control-strategy.hpp
ndn::to_string
std::string to_string(const V &v)
Definition:
backports.hpp:84
NFD_LOG_INIT
#define NFD_LOG_INIT(name)
Definition:
logger.hpp:34
nfd::fw::ClientControlStrategy::ClientControlStrategy
ClientControlStrategy(Forwarder &forwarder, const Name &name=getStrategyName())
Definition:
client-control-strategy.cpp:35
ndn::name
Definition:
name-component.cpp:38
logger.hpp
ndnSIM
NFD
daemon
fw
client-control-strategy.cpp
Generated on Sun Feb 25 2018 13:27:06 for ndnSIM by
1.8.14