A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
mpi-test-fixtures.h
Go to the documentation of this file.
1
/*
2
* Copyright 2018. Lawrence Livermore National Security, LLC.
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Steven Smith <smith84@llnl.gov>
18
*/
19
20
#include <iomanip>
21
#include <ios>
22
#include <sstream>
23
41
namespace
ns3
42
{
43
44
template
<
typename
T>
45
class
Ptr;
46
class
Address;
47
class
Packet;
48
57
#define RANK0COUT(x) \
58
do \
59
if (SinkTracer::GetWorldRank() == 0) \
60
{ \
61
std::cout << "TEST : "
; \
62
std::ios_base::fmtflags f(std::cout.flags()); \
63
std::cout << std::setfill('0') << std::setw(5) << SinkTracer::GetLineCount(); \
64
std::cout.flags(f); \
65
std::cout << " : " << x; \
66
} \
67
while (false)
68
77
#define RANK0COUTAPPEND(x) \
78
do \
79
if (SinkTracer::GetWorldRank() == 0) \
80
{ \
81
std::cout << x; \
82
} \
83
while (false)
84
90
class
SinkTracer
91
{
92
public
:
96
static
void
Init
();
97
102
static
void
SinkTrace
(
const
ns3::Ptr<const ns3::Packet>
packet,
103
const
ns3::Address
& srcAddress,
104
const
ns3::Address
& destAddress);
105
112
static
void
Verify
(
unsigned
long
expectedCount);
113
120
static
std::string
FormatAddress
(
const
ns3::Address
address
);
121
127
static
int
GetWorldRank
()
128
{
129
return
m_worldRank
;
130
}
131
137
static
int
GetWorldSize
()
138
{
139
return
m_worldSize
;
140
}
141
146
static
int
GetLineCount
()
147
{
148
return
m_line
++;
149
}
150
151
private
:
152
static
unsigned
long
m_sinkCount
;
153
static
unsigned
long
m_line
;
154
static
int
m_worldRank
;
155
static
int
m_worldSize
;
156
};
157
158
}
// namespace ns3
ns3::Address
a polymophic address class
Definition:
address.h:100
ns3::Ptr< const ns3::Packet >
ns3::SinkTracer
Collects data about incoming packets.
Definition:
mpi-test-fixtures.h:91
ns3::SinkTracer::SinkTrace
static void SinkTrace(const ns3::Ptr< const ns3::Packet > packet, const ns3::Address &srcAddress, const ns3::Address &destAddress)
PacketSink receive trace callback.
Definition:
mpi-test-fixtures.cc:49
ns3::SinkTracer::m_worldRank
static int m_worldRank
MPI CommWorld rank.
Definition:
mpi-test-fixtures.h:154
ns3::SinkTracer::Verify
static void Verify(unsigned long expectedCount)
Verify the sink trace count observed matches the expected count.
Definition:
mpi-test-fixtures.cc:57
ns3::SinkTracer::m_worldSize
static int m_worldSize
MPI CommWorld size.
Definition:
mpi-test-fixtures.h:155
ns3::SinkTracer::m_line
static unsigned long m_line
Current output line number for ordering output.
Definition:
mpi-test-fixtures.h:153
ns3::SinkTracer::Init
static void Init()
PacketSink Init.
Definition:
mpi-test-fixtures.cc:40
ns3::SinkTracer::GetWorldSize
static int GetWorldSize()
Get the MPI size of the world communicator.
Definition:
mpi-test-fixtures.h:137
ns3::SinkTracer::GetLineCount
static int GetLineCount()
Get current line count and increment it.
Definition:
mpi-test-fixtures.h:146
ns3::SinkTracer::GetWorldRank
static int GetWorldRank()
Get the MPI rank in the world communicator.
Definition:
mpi-test-fixtures.h:127
ns3::SinkTracer::m_sinkCount
static unsigned long m_sinkCount
Running sum of number of SinkTrace calls observed.
Definition:
mpi-test-fixtures.h:152
ns3::SinkTracer::FormatAddress
static std::string FormatAddress(const ns3::Address address)
Get the source address and port, as a formatted string.
Definition:
mpi-test-fixtures.cc:79
first.address
address
Definition:
first.py:40
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
mpi
examples
mpi-test-fixtures.h
Generated on Fri Mar 31 2023 13:30:48 for ns-3 by
1.9.1