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
face-manager.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_MGMT_FACE_MANAGER_HPP
27
#define NFD_DAEMON_MGMT_FACE_MANAGER_HPP
28
29
#include "
nfd-manager-base.hpp
"
30
#include "
face/face-system.hpp
"
31
#include <ndn-cxx/mgmt/nfd/face-status.hpp>
32
#include <ndn-cxx/mgmt/nfd/face-query-filter.hpp>
33
#include <ndn-cxx/mgmt/nfd/face-event-notification.hpp>
34
35
namespace
nfd
{
36
41
class
FaceManager
:
public
NfdManagerBase
42
{
43
public
:
44
FaceManager
(
FaceSystem
& faceSystem,
45
Dispatcher
& dispatcher,
CommandAuthenticator
& authenticator);
46
50
void
51
setConfigFile
(
ConfigFile
& configFile);
52
53
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
// ControlCommand
54
void
55
createFace(
const
Name
& topPrefix,
const
Interest
& interest,
56
const
ControlParameters
& parameters,
57
const
ndn::mgmt::CommandContinuation
& done);
58
59
void
60
updateFace(
const
Name
& topPrefix,
const
Interest
& interest,
61
const
ControlParameters
& parameters,
62
const
ndn::mgmt::CommandContinuation
& done);
63
64
void
65
destroyFace(
const
Name
& topPrefix,
const
Interest
& interest,
66
const
ControlParameters
& parameters,
67
const
ndn::mgmt::CommandContinuation
& done);
68
69
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
// helpers for ControlCommand
70
void
71
afterCreateFaceSuccess(
const
ControlParameters
& parameters,
72
const
shared_ptr<Face>& newFace,
73
const
ndn::mgmt::CommandContinuation
& done);
74
75
void
76
afterCreateFaceFailure(uint32_t status,
77
const
std::string& reason,
78
const
ndn::mgmt::CommandContinuation
& done);
79
80
static
void
81
setLinkServiceOptions(
Face
&
face
,
82
const
ControlParameters
& parameters);
83
84
static
ControlParameters
85
collectFaceProperties(
const
Face
& face,
bool
wantUris);
86
87
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
// StatusDataset
88
void
89
listFaces(
const
Name
& topPrefix,
const
Interest
& interest,
90
ndn::mgmt::StatusDatasetContext
& context);
91
92
void
93
listChannels(
const
Name
& topPrefix,
const
Interest
& interest,
94
ndn::mgmt::StatusDatasetContext
& context);
95
96
void
97
queryFaces(
const
Name
& topPrefix,
const
Interest
& interest,
98
ndn::mgmt::StatusDatasetContext
& context);
99
100
private
:
// helpers for StatusDataset handler
101
bool
102
matchFilter(
const
ndn::nfd::FaceQueryFilter
& filter,
const
Face
& face);
103
106
static
ndn::nfd::FaceStatus
107
collectFaceStatus(
const
Face
& face,
const
time::steady_clock::TimePoint
& now);
108
112
template
<
typename
FaceTraits>
113
static
void
114
collectFaceProperties(
const
Face
& face, FaceTraits& traits);
115
116
private
:
// NotificationStream
117
void
118
notifyFaceEvent(
const
Face
& face,
ndn::nfd::FaceEventKind
kind);
119
120
void
121
connectFaceStateChangeSignal(
const
Face
& face);
122
123
private
:
124
FaceSystem
& m_faceSystem;
125
FaceTable
& m_faceTable;
126
127
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
128
std::map<FaceId, signal::ScopedConnection> m_faceStateChangeConn;
129
130
private
:
131
ndn::mgmt::PostNotification
m_postNotification;
132
signal::ScopedConnection
m_faceAddConn;
133
signal::ScopedConnection
m_faceRemoveConn;
134
};
135
136
}
// namespace nfd
137
138
#endif // NFD_DAEMON_MGMT_FACE_MANAGER_HPP
PUBLIC_WITH_TESTS_ELSE_PRIVATE
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
Definition:
common.hpp:40
nfd::FaceManager::setConfigFile
void setConfigFile(ConfigFile &configFile)
Subscribe to face_system section for the config file.
Definition:
face-manager.cpp:71
ndn::time::steady_clock::TimePoint
time_point TimePoint
Definition:
time.hpp:120
face-system.hpp
ndn::nfd::ControlParameters
represents parameters in a ControlCommand request or response
Definition:
control-parameters.hpp:71
ndn::mgmt::PostNotification
std::function< void(const Block ¬ification)> PostNotification
a function to post a notification
Definition:
dispatcher.hpp:123
ndn::mgmt::Dispatcher
represents a dispatcher on server side of NFD Management protocol
Definition:
dispatcher.hpp:129
nfd::ConfigFile
configuration file parsing utility
Definition:
config-file.hpp:58
nfd-manager-base.hpp
ndn::Interest
represents an Interest packet
Definition:
interest.hpp:42
nfd::face::FaceSystem
FaceSystem
Definition:
face-system.cpp:34
Face
ndn Face
Definition:
face-impl.hpp:41
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::FaceManager::FaceManager
FaceManager(FaceSystem &faceSystem, Dispatcher &dispatcher, CommandAuthenticator &authenticator)
Definition:
face-manager.cpp:38
ndn::util::signal::ScopedConnection
disconnects a Connection automatically upon destruction
Definition:
scoped-connection.hpp:33
ndn::nfd::FaceEventKind
FaceEventKind
Definition:
nfd-constants.hpp:76
ndn::nfd::FaceStatus
represents an item in NFD Face dataset
Definition:
face-status.hpp:36
face
ndn::Name
Represents an absolute name.
Definition:
name.hpp:42
ndn::mgmt::CommandContinuation
std::function< void(const ControlResponse &resp)> CommandContinuation
a function to be called after ControlCommandHandler completes
Definition:
dispatcher.hpp:95
ndn::nfd::FaceQueryFilter
represents Face Query Filter
Definition:
face-query-filter.hpp:36
nfd::CommandAuthenticator
provides ControlCommand authorization according to NFD configuration file
Definition:
command-authenticator.hpp:44
ndn::mgmt::StatusDatasetContext
provides a context for generating response to a StatusDataset request
Definition:
status-dataset-context.hpp:36
nfd::NfdManagerBase
a collection of common functions shared by all NFD managers, such as communicating with the dispatche...
Definition:
nfd-manager-base.hpp:41
nfd::FaceManager
implement the Face Management of NFD Management Protocol.
Definition:
face-manager.hpp:41
ndnSIM
NFD
daemon
mgmt
face-manager.hpp
Generated on Thu Nov 2 2017 03:30:29 for ndnSIM by
1.8.11