NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
counter.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_COMMON_COUNTER_HPP
27
#define NFD_DAEMON_COMMON_COUNTER_HPP
28
29
#include "
core/common.hpp
"
30
31
namespace
nfd
{
32
38
class
SimpleCounter
: noncopyable
39
{
40
public
:
41
typedef
uint64_t
rep
;
42
45
operator
rep
() const noexcept
46
{
47
return
m_value
;
48
}
49
52
void
53
set
(
rep
value) noexcept
54
{
55
m_value
= value;
56
}
57
58
protected
:
59
rep
m_value
= 0;
60
};
61
66
class
PacketCounter
:
public
SimpleCounter
67
{
68
public
:
71
PacketCounter
&
72
operator++
() noexcept
73
{
74
++
m_value
;
75
return
*
this
;
76
}
77
// postfix ++ operator is not provided because it's not needed
78
};
79
84
class
ByteCounter
:
public
SimpleCounter
85
{
86
public
:
89
ByteCounter
&
90
operator+=
(
rep
n) noexcept
91
{
92
m_value
+= n;
93
return
*
this
;
94
}
95
};
96
102
template
<
typename
T>
103
class
SizeCounter
: noncopyable
104
{
105
public
:
106
typedef
size_t
Rep
;
107
108
explicit
constexpr
109
SizeCounter
(
const
T* table =
nullptr
) noexcept
110
: m_table(table)
111
{
112
}
113
114
void
115
observe
(
const
T* table) noexcept
116
{
117
m_table = table;
118
}
119
122
operator
Rep
()
const
123
{
124
BOOST_ASSERT(m_table !=
nullptr
);
125
return
m_table->size();
126
}
127
128
private
:
129
const
T* m_table;
130
};
131
132
}
// namespace nfd
133
134
#endif // NFD_DAEMON_COMMON_COUNTER_HPP
nfd::SizeCounter::SizeCounter
constexpr SizeCounter(const T *table=nullptr) noexcept
Definition:
counter.hpp:109
common.hpp
nfd::SimpleCounter::m_value
rep m_value
Definition:
counter.hpp:59
nfd
Copyright (c) 2011-2015 Regents of the University of California.
Definition:
ndn-common.hpp:40
nfd::SizeCounter
provides a counter that observes the size of a table
Definition:
counter.hpp:104
nfd::SimpleCounter
represents a counter that encloses an integer value
Definition:
counter.hpp:39
nfd::SizeCounter::Rep
size_t Rep
Definition:
counter.hpp:106
nfd::PacketCounter::operator++
PacketCounter & operator++() noexcept
increment the counter by one
Definition:
counter.hpp:72
nfd::SimpleCounter::set
void set(rep value) noexcept
replace the counter value
Definition:
counter.hpp:53
nfd::ByteCounter::operator+=
ByteCounter & operator+=(rep n) noexcept
increase the counter
Definition:
counter.hpp:90
nfd::PacketCounter
represents a counter of number of packets
Definition:
counter.hpp:67
nfd::SizeCounter::observe
void observe(const T *table) noexcept
Definition:
counter.hpp:115
nfd::SimpleCounter::rep
uint64_t rep
Definition:
counter.hpp:41
nfd::ByteCounter
represents a counter of number of bytes
Definition:
counter.hpp:85
ndnSIM
NFD
daemon
common
counter.hpp
Generated on Mon Jun 1 2020 22:32:15 for ndnSIM by
1.8.18