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
face-system.hpp
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
#ifndef NFD_DAEMON_FACE_FACE_SYSTEM_HPP
27
#define NFD_DAEMON_FACE_FACE_SYSTEM_HPP
28
29
#include "
channel.hpp
"
30
#include "
core/config-file.hpp
"
31
#include "
core/network-interface-predicate.hpp
"
32
#include <ndn-cxx/net/network-address.hpp>
33
#include <ndn-cxx/net/network-interface.hpp>
34
#include <ndn-cxx/net/network-monitor.hpp>
35
36
namespace
nfd
{
37
38
class
FaceTable
;
39
40
namespace
face
{
41
42
class
ProtocolFactory;
43
struct
ProtocolFactoryCtorParams;
44
50
class
FaceSystem
: noncopyable
51
{
52
public
:
53
FaceSystem
(
FaceTable
& faceTable, shared_ptr<ndn::net::NetworkMonitor> netmon);
54
55
~FaceSystem
();
56
59
std::set<const ProtocolFactory*>
60
listProtocolFactories
()
const
;
61
64
ProtocolFactory
*
65
getFactoryById
(
const
std::string&
id
);
66
69
ProtocolFactory
*
70
getFactoryByScheme
(
const
std::string& scheme);
71
72
FaceTable
&
73
getFaceTable
()
74
{
75
return
m_faceTable;
76
}
77
80
void
81
setConfigFile
(
ConfigFile
& configFile);
82
85
class
ConfigContext
: noncopyable
86
{
87
public
:
88
bool
isDryRun
;
89
};
90
91
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
92
ProtocolFactoryCtorParams
93
makePFCtorParams();
94
95
private
:
96
void
97
processConfig(
const
ConfigSection
& configSection,
bool
isDryRun
,
98
const
std::string& filename);
99
100
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
103
std::map<std::string, unique_ptr<ProtocolFactory>> m_factories;
104
105
private
:
110
std::map<std::string, ProtocolFactory*> m_factoryByScheme;
111
112
FaceTable
& m_faceTable;
113
114
shared_ptr<ndn::net::NetworkMonitor> m_netmon;
115
};
116
117
}
// namespace face
118
119
using
face::FaceSystem
;
120
121
}
// namespace nfd
122
123
#endif // NFD_DAEMON_FACE_FACE_SYSTEM_HPP
PUBLIC_WITH_TESTS_ELSE_PRIVATE
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
Definition:
common.hpp:40
nfd::face::FaceSystem::getFactoryById
ProtocolFactory * getFactoryById(const std::string &id)
Definition:
face-system.cpp:67
nfd::face::FaceSystem::ConfigContext::isDryRun
bool isDryRun
Definition:
face-system.hpp:88
nfd::ConfigFile
configuration file parsing utility
Definition:
config-file.hpp:58
network-interface-predicate.hpp
channel.hpp
nfd::face::FaceSystem::getFactoryByScheme
ProtocolFactory * getFactoryByScheme(const std::string &scheme)
Definition:
face-system.cpp:74
nfd::face::FaceSystem
entry point of the face system
Definition:
face-system.hpp:50
nfd::face::FaceSystem::getFaceTable
FaceTable & getFaceTable()
Definition:
face-system.hpp:73
nfd::face::FaceSystem
FaceSystem
Definition:
face-system.cpp:34
nfd::face::FaceSystem::FaceSystem
FaceSystem(FaceTable &faceTable, shared_ptr< ndn::net::NetworkMonitor > netmon)
Definition:
face-system.cpp:36
config-file.hpp
nfd::face::FaceSystem::listProtocolFactories
std::set< const ProtocolFactory * > listProtocolFactories() const
Definition:
face-system.cpp:57
nfd::face::ProtocolFactory
Provides support for an underlying protocol.
Definition:
protocol-factory.hpp:59
nfd::FaceTable
container of all faces
Definition:
face-table.hpp:37
nfd
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-common.hpp:40
nfd::face::FaceSystem::setConfigFile
void setConfigFile(ConfigFile &configFile)
register handler for face_system section of NFD configuration file
Definition:
face-system.cpp:81
nfd::face::FaceSystem::~FaceSystem
~FaceSystem()
nfd::face::ProtocolFactoryCtorParams
Parameters to ProtocolFactory constructor.
Definition:
protocol-factory.hpp:46
face
nfd::ConfigSection
boost::property_tree::ptree ConfigSection
a config file section
Definition:
ndn-l3-protocol.hpp:38
nfd::FaceTable
FaceTable
Definition:
face-table.cpp:36
nfd::face::FaceSystem::ConfigContext
context for processing a config section in ProtocolFactory
Definition:
face-system.hpp:85
ndnSIM
NFD
daemon
face
face-system.hpp
Generated on Thu Nov 2 2017 03:30:29 for ndnSIM by
1.8.11