A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
sequence-number-example.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2026 Universita' di Firenze, Italy
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Tommaso Pecorella <tommaso.pecorella@unifi.it>
7
*/
8
9
/**
10
* @file
11
* Example to demonstrate the SequenceNumber class.
12
*/
13
14
#include "ns3/sequence-number.h"
15
16
using namespace
ns3
;
17
18
int
19
main(
int
argc,
char
* argv[])
20
{
21
// Note: most sequence numbers have pre-defined aliases, like SequenceNumber16.
22
// Here we use the template to define a reduced range sequence number.
23
// plus, we define our own short name, for simplicity.
24
using
SequenceNumber4 =
SequenceNumber<uint8_t, 4>
;
25
26
SequenceNumber4 seqNum1(0
u
);
27
SequenceNumber4 seqNum2 = seqNum1;
28
29
// Error: SequenceNumbers must have the same underlying type and number of bits
30
// SequenceNumber<uint16_t, 4> seqNum3 = seqNum1;
31
// SequenceNumber<uint8_t, 5> seqNum4 = seqNum1;
32
33
for
(
size_t
i = 0; i < SequenceNumber4::N_SEQUENCE_NUMBERS; i++)
34
{
35
std::string relation;
36
if
(seqNum2 == seqNum1)
37
{
38
relation =
" = "
;
39
}
40
else
if
(seqNum2 < seqNum1)
41
{
42
relation =
" < "
;
43
}
44
else
45
{
46
relation =
" > "
;
47
}
48
std::cout <<
"4-bit sequence number value "
<< seqNum2 << relation << seqNum1 << std::endl;
49
seqNum2++;
50
}
51
52
std::cout << std::endl <<
"Table of comparisons (numbers are in hexadecimal):"
<< std::endl;
53
std::cout <<
" "
;
54
for
(
size_t
i = 0; i < SequenceNumber4::N_SEQUENCE_NUMBERS; i++)
55
{
56
std::cout << std::hex << i <<
" "
;
57
}
58
std::cout << std::endl;
59
60
// We assign a value instead of incrementing the sequence number.
61
// Just an alternative way.
62
for
(
size_t
i = 0; i < SequenceNumber4::N_SEQUENCE_NUMBERS; i++)
63
{
64
seqNum1 = i;
65
std::cout << std::hex << seqNum1 <<
" "
;
66
67
for
(
size_t
j = 0; j < SequenceNumber4::N_SEQUENCE_NUMBERS; j++)
68
{
69
seqNum2 = j;
70
std::string relation;
71
if
(seqNum2 == seqNum1)
72
{
73
relation =
" ."
;
74
}
75
else
if
(seqNum2 < seqNum1)
76
{
77
relation =
" -"
;
78
}
79
else
80
{
81
relation =
" +"
;
82
}
83
std::cout << relation;
84
}
85
std::cout << std::endl;
86
}
87
88
return
0;
89
}
u
uint32_t u
Definition
cairo-wideint.c:748
ns3::SequenceNumber
Generic "sequence number" class.
Definition
sequence-number.h:114
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
network
examples
sequence-number-example.cc
Generated on
for ns-3 by
1.16.1