NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
face-table.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_FW_FACE_TABLE_HPP
27
#define NFD_DAEMON_FW_FACE_TABLE_HPP
28
29
#include "
face/face.hpp
"
30
31
#include <boost/range/adaptor/indirected.hpp>
32
#include <boost/range/adaptor/map.hpp>
33
34
namespace
nfd
{
35
38
class
FaceTable
: noncopyable
39
{
40
public
:
41
FaceTable
();
42
48
void
49
add
(shared_ptr<Face> face);
50
53
void
54
addReserved
(shared_ptr<Face> face,
FaceId
faceId);
55
60
Face
*
61
get
(
FaceId
id
)
const
;
62
65
size_t
66
size
()
const
;
67
68
public
:
// enumeration
69
using
FaceMap
= std::map<FaceId, shared_ptr<Face>>;
70
using
ForwardRange
= boost::indirected_range<const boost::select_second_const_range<FaceMap>>;
71
74
using
const_iterator
= boost::range_iterator<ForwardRange>::type;
75
76
const_iterator
77
begin
()
const
;
78
79
const_iterator
80
end
()
const
;
81
82
public
:
// signals
85
signal::Signal<FaceTable, Face>
afterAdd
;
86
91
signal::Signal<FaceTable, Face>
beforeRemove
;
92
93
private
:
94
void
95
addImpl(shared_ptr<Face> face,
FaceId
faceId);
96
97
void
98
remove(
FaceId
faceId);
99
100
ForwardRange
101
getForwardRange()
const
;
102
103
private
:
104
FaceId
m_lastFaceId;
105
FaceMap
m_faces;
106
};
107
108
}
// namespace nfd
109
110
#endif // NFD_DAEMON_FW_FACE_TABLE_HPP
nfd::FaceTable::const_iterator
boost::range_iterator< ForwardRange >::type const_iterator
ForwardIterator for Face&.
Definition:
face-table.hpp:74
nfd::FaceTable::end
const_iterator end() const
Definition:
face-table.cpp:127
nfd::FaceTable::addReserved
void addReserved(shared_ptr< Face > face, FaceId faceId)
add a special face with a reserved FaceId
Definition:
face-table.cpp:71
nfd::FaceTable::FaceTable
FaceTable()
Definition:
face-table.cpp:39
nfd::FaceTable::afterAdd
signal::Signal< FaceTable, Face > afterAdd
Fires immediately after a face is added.
Definition:
face-table.hpp:85
nfd::FaceTable::FaceMap
std::map< FaceId, shared_ptr< Face > > FaceMap
Definition:
face-table.hpp:69
ndn::util::signal::Signal
provides a lightweight signal / event system
Definition:
signal.hpp:52
nfd
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-common.hpp:40
nfd::face::FaceId
uint64_t FaceId
Identifies a face.
Definition:
face-common.hpp:44
nfd::face::Face
generalization of a network interface
Definition:
face.hpp:53
nfd::FaceTable
container of all faces
Definition:
face-table.hpp:39
face.hpp
nfd::FaceTable::get
Face * get(FaceId id) const
get face by FaceId
Definition:
face-table.cpp:45
nfd::FaceTable::begin
const_iterator begin() const
Definition:
face-table.cpp:121
nfd::FaceTable::add
void add(shared_ptr< Face > face)
add a face
Definition:
face-table.cpp:58
nfd::FaceTable::size
size_t size() const
Definition:
face-table.cpp:52
nfd::FaceTable::ForwardRange
boost::indirected_range< const boost::select_second_const_range< FaceMap > > ForwardRange
Definition:
face-table.hpp:70
nfd::FaceTable::beforeRemove
signal::Signal< FaceTable, Face > beforeRemove
Fires immediately before a face is removed.
Definition:
face-table.hpp:91
ndnSIM
NFD
daemon
fw
face-table.hpp
Generated on Mon Jun 1 2020 22:32:16 for ndnSIM by
1.8.18