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
protocol-factory.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 "
protocol-factory.hpp
"
27
#include <boost/range/adaptor/map.hpp>
28
#include <boost/range/algorithm/copy.hpp>
29
30
namespace
nfd
{
31
namespace
face
{
32
33
ProtocolFactory::Registry&
34
ProtocolFactory::getRegistry()
35
{
36
static
Registry registry;
37
return
registry;
38
}
39
40
unique_ptr<ProtocolFactory>
41
ProtocolFactory::create
(
const
std::string&
id
,
const
CtorParams
& params)
42
{
43
Registry& registry = getRegistry();
44
auto
found
= registry.find(
id
);
45
if
(
found
== registry.end()) {
46
return
nullptr
;
47
}
48
49
return
found
->second(params);
50
}
51
52
std::set<std::string>
53
ProtocolFactory::listRegistered
()
54
{
55
std::set<std::string> factoryIds;
56
boost::copy(getRegistry() | boost::adaptors::map_keys,
57
std::inserter(factoryIds, factoryIds.end()));
58
return
factoryIds;
59
}
60
61
ProtocolFactory::ProtocolFactory
(
const
CtorParams
& params)
62
:
addFace
(params.
addFace
)
63
,
netmon
(params.
netmon
)
64
{
65
BOOST_ASSERT(
addFace
!=
nullptr
);
66
BOOST_ASSERT(
netmon
!=
nullptr
);
67
}
68
69
}
// namespace face
70
}
// namespace nfd
nfd::face::ProtocolFactory::listRegistered
static std::set< std::string > listRegistered()
Get registered protocol factory ids.
Definition:
protocol-factory.cpp:53
nfd::face::ProtocolFactory::netmon
shared_ptr< ndn::net::NetworkMonitor > netmon
NetworkMonitor for listing available network interfaces and monitoring their changes.
Definition:
protocol-factory.hpp:191
protocol-factory.hpp
nfd::face::ProtocolFactory::ProtocolFactory
ProtocolFactory(const CtorParams ¶ms)
Definition:
protocol-factory.cpp:61
websocketpp::http::status_code::found
Definition:
constants.hpp:138
nfd::face::ProtocolFactory::addFace
FaceCreatedCallback addFace
callback when a new face is created
Definition:
protocol-factory.hpp:184
nfd
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-common.hpp:40
nfd::face::ProtocolFactoryCtorParams
Parameters to ProtocolFactory constructor.
Definition:
protocol-factory.hpp:46
face
nfd::face::ProtocolFactory::create
static unique_ptr< ProtocolFactory > create(const std::string &id, const CtorParams ¶ms)
Create a protocol factory instance.
Definition:
protocol-factory.cpp:41
ndnSIM
NFD
daemon
face
protocol-factory.cpp
Generated on Thu Nov 2 2017 03:30:29 for ndnSIM by
1.8.11