NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
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-2018, 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
32
#include <ndn-cxx/mgmt/nfd/face-status.hpp>
33
#include <ndn-cxx/mgmt/nfd/face-query-filter.hpp>
34
#include <ndn-cxx/mgmt/nfd/face-event-notification.hpp>
35
36
namespace
nfd
{
37
42
class
FaceManager
:
public
NfdManagerBase
43
{
44
public
:
45
FaceManager
(
FaceSystem
& faceSystem,
46
Dispatcher
& dispatcher,
47
CommandAuthenticator
& authenticator);
48
49
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
// ControlCommand
50
void
51
createFace(
const
Name
& topPrefix,
const
Interest
& interest,
52
const
ControlParameters
& parameters,
53
const
ndn::mgmt::CommandContinuation
& done);
54
55
void
56
updateFace(
const
Name
& topPrefix,
const
Interest
& interest,
57
const
ControlParameters
& parameters,
58
const
ndn::mgmt::CommandContinuation
& done);
59
60
void
61
destroyFace(
const
Name
& topPrefix,
const
Interest
& interest,
62
const
ControlParameters
& parameters,
63
const
ndn::mgmt::CommandContinuation
& done);
64
65
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
// helpers for ControlCommand
66
void
67
afterCreateFaceSuccess(
const
ControlParameters
& parameters,
68
const
shared_ptr<Face>& newFace,
69
const
ndn::mgmt::CommandContinuation
& done);
70
71
void
72
afterCreateFaceFailure(uint32_t status,
73
const
std::string& reason,
74
const
ndn::mgmt::CommandContinuation
& done);
75
76
static
void
77
setLinkServiceOptions(
Face
&
face
,
const
ControlParameters
& parameters);
78
79
static
ControlParameters
80
collectFaceProperties(
const
Face
&
face
,
bool
wantUris);
81
82
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
// StatusDataset
83
void
84
listFaces(
const
Name
& topPrefix,
const
Interest
& interest,
85
ndn::mgmt::StatusDatasetContext
& context);
86
87
void
88
listChannels(
const
Name
& topPrefix,
const
Interest
& interest,
89
ndn::mgmt::StatusDatasetContext
& context);
90
91
void
92
queryFaces(
const
Name
& topPrefix,
const
Interest
& interest,
93
ndn::mgmt::StatusDatasetContext
& context);
94
95
private
:
// helpers for StatusDataset handler
96
static
bool
97
matchFilter(
const
ndn::nfd::FaceQueryFilter
& filter,
const
Face
&
face
);
98
101
static
ndn::nfd::FaceStatus
102
collectFaceStatus(
const
Face
&
face
,
const
time::steady_clock::TimePoint
& now);
103
107
template
<
typename
FaceTraits>
108
static
void
109
collectFaceProperties(
const
Face
&
face
, FaceTraits& traits);
110
111
private
:
// NotificationStream
112
void
113
notifyFaceEvent(
const
Face
&
face
,
ndn::nfd::FaceEventKind
kind);
114
115
void
116
connectFaceStateChangeSignal(
const
Face
&
face
);
117
118
private
:
119
FaceSystem
& m_faceSystem;
120
FaceTable
& m_faceTable;
121
ndn::mgmt::PostNotification
m_postNotification;
122
signal::ScopedConnection
m_faceAddConn;
123
signal::ScopedConnection
m_faceRemoveConn;
124
125
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
126
std::map<FaceId, signal::ScopedConnection> m_faceStateChangeConn;
127
};
128
129
}
// namespace nfd
130
131
#endif // NFD_DAEMON_MGMT_FACE_MANAGER_HPP
PUBLIC_WITH_TESTS_ELSE_PRIVATE
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
Definition:
common.hpp:40
ndn::time::steady_clock::TimePoint
time_point TimePoint
Definition:
time.hpp:226
face-system.hpp
ndn::nfd::ControlParameters
represents parameters in a ControlCommand request or response
Definition:
control-parameters.hpp:79
ndn::mgmt::PostNotification
std::function< void(const Block ¬ification)> PostNotification
a function to post a notification
Definition:
dispatcher.hpp:124
nfd::face::Face
generalization of a network interface
Definition:
face.hpp:67
ndn::mgmt::Dispatcher
represents a dispatcher on server side of NFD Management protocol
Definition:
dispatcher.hpp:130
nfd-manager-base.hpp
nfd::face::FaceSystem
entry point of the face system
Definition:
face-system.hpp:50
ndn::Interest
Represents an Interest packet.
Definition:
interest.hpp:42
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:40
ndn::util::signal::ScopedConnection
disconnects a Connection automatically upon destruction
Definition:
scoped-connection.hpp:33
ndn::nfd::FaceEventKind
FaceEventKind
Definition:
nfd-constants.hpp:77
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:42
ndnSIM
NFD
daemon
mgmt
face-manager.hpp
Generated on Tue Aug 7 2018 16:19:18 for ndnSIM by
1.8.14