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-2019, 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 "
manager-base.hpp
"
30
#include "
face/face.hpp
"
31
#include "
face/face-system.hpp
"
32
33
namespace
nfd
{
34
39
class
FaceManager
:
public
ManagerBase
40
{
41
public
:
42
FaceManager
(
FaceSystem
& faceSystem,
43
Dispatcher
& dispatcher,
CommandAuthenticator
& authenticator);
44
45
private
:
// ControlCommand
46
void
47
createFace(
const
ControlParameters
& parameters,
48
const
ndn::mgmt::CommandContinuation
& done);
49
50
void
51
updateFace(
const
Interest
& interest,
52
const
ControlParameters
& parameters,
53
const
ndn::mgmt::CommandContinuation
& done);
54
55
void
56
destroyFace(
const
ControlParameters
& parameters,
57
const
ndn::mgmt::CommandContinuation
& done);
58
59
private
:
// helpers for ControlCommand
60
void
61
afterCreateFaceSuccess(
const
shared_ptr<Face>& face,
62
const
ControlParameters
& parameters,
63
const
ndn::mgmt::CommandContinuation
& done);
64
65
private
:
// StatusDataset
66
void
67
listFaces(
ndn::mgmt::StatusDatasetContext
& context);
68
69
void
70
listChannels(
ndn::mgmt::StatusDatasetContext
& context);
71
72
void
73
queryFaces(
const
Interest
& interest,
ndn::mgmt::StatusDatasetContext
& context);
74
75
private
:
// NotificationStream
76
void
77
notifyFaceEvent(
const
Face
& face,
ndn::nfd::FaceEventKind
kind);
78
79
void
80
connectFaceStateChangeSignal(
const
Face
& face);
81
82
private
:
83
FaceSystem
& m_faceSystem;
84
FaceTable
& m_faceTable;
85
ndn::mgmt::PostNotification
m_postNotification;
86
signal::ScopedConnection
m_faceAddConn;
87
signal::ScopedConnection
m_faceRemoveConn;
88
89
PUBLIC_WITH_TESTS_ELSE_PRIVATE
:
90
std::map<FaceId, signal::ScopedConnection> m_faceStateChangeConn;
91
};
92
93
}
// namespace nfd
94
95
#endif // NFD_DAEMON_MGMT_FACE_MANAGER_HPP
PUBLIC_WITH_TESTS_ELSE_PRIVATE
#define PUBLIC_WITH_TESTS_ELSE_PRIVATE
Definition:
common.hpp:41
ndn::util::signal::ScopedConnection
Disconnects a Connection automatically upon destruction.
Definition:
scoped-connection.hpp:34
nfd::FaceManager
Implements the Face Management of NFD Management Protocol.
Definition:
face-manager.hpp:40
nfd::face::FaceSystem
entry point of the face system
Definition:
face-system.hpp:52
ndn::mgmt::CommandContinuation
std::function< void(const ControlResponse &resp)> CommandContinuation
a function to be called after ControlCommandHandler completes
Definition:
dispatcher.hpp:95
ndn::mgmt::PostNotification
std::function< void(const Block ¬ification)> PostNotification
a function to post a notification
Definition:
dispatcher.hpp:124
face-system.hpp
nfd
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-common.hpp:40
nfd::face::Face
generalization of a network interface
Definition:
face.hpp:53
nfd::FaceTable
container of all faces
Definition:
face-table.hpp:39
ndn::mgmt::StatusDatasetContext
provides a context for generating response to a StatusDataset request
Definition:
status-dataset-context.hpp:37
face.hpp
manager-base.hpp
ndn::Interest
Represents an Interest packet.
Definition:
interest.hpp:44
nfd::ManagerBase
A collection of common functions shared by all NFD managers, such as communicating with the dispatche...
Definition:
manager-base.hpp:48
ndn::nfd::ControlParameters
represents parameters in a ControlCommand request or response
Definition:
control-parameters.hpp:82
ndn::nfd::FaceEventKind
FaceEventKind
Definition:
nfd-constants.hpp:77
ndn::mgmt::Dispatcher
represents a dispatcher on server side of NFD Management protocol
Definition:
dispatcher.hpp:131
nfd::CommandAuthenticator
Provides ControlCommand authorization according to NFD configuration file.
Definition:
command-authenticator.hpp:46
nfd::FaceManager::FaceManager
FaceManager(FaceSystem &faceSystem, Dispatcher &dispatcher, CommandAuthenticator &authenticator)
Definition:
face-manager.cpp:43
ndnSIM
NFD
daemon
mgmt
face-manager.hpp
Generated on Mon Jun 1 2020 22:32:16 for ndnSIM by
1.8.18