A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
mpi-test-fixtures.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright 2018. Lawrence Livermore National Security, LLC.
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Author: Steven Smith <smith84@llnl.gov>
19
*/
20
21
#include <iomanip>
22
#include <sstream>
23
#include <ios>
24
42
namespace
ns3
{
43
44
template
<
typename
T>
class
Ptr;
45
class
Address;
46
class
Packet;
47
48
55
#define RANK0COUT(x) \
56
do \
57
if (SinkTracer::GetWorldRank () == 0) \
58
{ \
59
std::cout << "TEST : "
; \
60
std::ios_base::fmtflags f( std::cout.flags() ); \
61
std::cout << std::setfill('0') << std::setw(5) << SinkTracer::GetLineCount (); \
62
std::cout.flags( f ); \
63
std::cout << " : " << x; \
64
} \
65
while (false)
66
67
#define RANK0COUTAPPEND(x) \
68
do \
69
if (SinkTracer::GetWorldRank () == 0) \
70
{ \
71
std::cout << x ; \
72
} \
73
while (false)
74
75
class
SinkTracer
76
{
77
78
public
:
83
static
void
Init
(
void
);
84
89
static
void
SinkTrace
(
const
ns3::Ptr<const ns3::Packet>
packet,
90
const
ns3::Address
&srcAddress,
91
const
ns3::Address
&destAddress);
92
97
static
void
Verify
(
unsigned
long
expectedCount);
98
105
static
std::string
FormatAddress
(
const
ns3::Address
address
);
106
112
static
int
GetWorldRank
(
void
)
113
{
114
return
m_worldRank
;
115
}
116
122
static
int
GetWorldSize
(
void
)
123
{
124
return
m_worldSize
;
125
}
126
131
static
int
GetLineCount
(
void
)
132
{
133
return
m_line
++;
134
}
135
136
private
:
137
static
unsigned
long
m_sinkCount
;
/*< Running sum of number of SinkTrace calls observed */
138
static
unsigned
long
m_line
;
/*< Current output line number for ordering output */
139
static
int
m_worldRank
;
/*< MPI CommWorld rank */
140
static
int
m_worldSize
;
/*< MPI CommWorld size */
141
};
142
143
}
// namespace ns3
ns3::Address
a polymophic address class
Definition:
address.h:91
ns3::Ptr< const ns3::Packet >
ns3::SinkTracer
Definition:
mpi-test-fixtures.h:76
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:50
ns3::SinkTracer::GetWorldRank
static int GetWorldRank(void)
Get the MPI rank in the world communicator.
Definition:
mpi-test-fixtures.h:112
ns3::SinkTracer::Init
static void Init(void)
PacketSink receive trace callback.
Definition:
mpi-test-fixtures.cc:40
ns3::SinkTracer::m_worldRank
static int m_worldRank
Definition:
mpi-test-fixtures.h:139
ns3::SinkTracer::GetLineCount
static int GetLineCount(void)
Get current line count and increment.
Definition:
mpi-test-fixtures.h:131
ns3::SinkTracer::Verify
static void Verify(unsigned long expectedCount)
Verify the sink trace count observed matches the expected count.
Definition:
mpi-test-fixtures.cc:58
ns3::SinkTracer::m_worldSize
static int m_worldSize
Definition:
mpi-test-fixtures.h:140
ns3::SinkTracer::m_line
static unsigned long m_line
Definition:
mpi-test-fixtures.h:138
ns3::SinkTracer::GetWorldSize
static int GetWorldSize(void)
Get the MPI size of the world communicator.
Definition:
mpi-test-fixtures.h:122
ns3::SinkTracer::m_sinkCount
static unsigned long m_sinkCount
Definition:
mpi-test-fixtures.h:137
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:80
first.address
address
Definition:
first.py:44
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
mpi
examples
mpi-test-fixtures.h
Generated on Mon Sep 27 2021 10:49:51 for ns-3 by
1.9.1