A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
remote-channel-bundle.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright 2013. 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
28
#ifndef NS3_REMOTE_CHANNEL_BUNDLE
29
#define NS3_REMOTE_CHANNEL_BUNDLE
30
31
#include "
null-message-simulator-impl.h
"
32
33
#include <ns3/channel.h>
34
#include <ns3/ptr.h>
35
#include <ns3/pointer.h>
36
37
#include <unordered_map>
38
39
namespace
ns3
{
40
51
class
RemoteChannelBundle
:
public
Object
52
{
53
public
:
58
static
TypeId
GetTypeId
(
void
);
59
61
RemoteChannelBundle
();
62
67
RemoteChannelBundle
(
const
uint32_t remoteSystemId);
68
70
~RemoteChannelBundle
()
71
{
72
}
73
79
void
AddChannel
(
Ptr<Channel>
channel
,
Time
delay);
80
85
uint32_t
GetSystemId
()
const
;
86
91
Time
GetGuaranteeTime
(
void
)
const
;
92
99
void
SetGuaranteeTime
(
Time
time);
100
105
Time
GetDelay
(
void
)
const
;
106
113
void
SetEventId
(
EventId
id
);
114
119
EventId
GetEventId
(
void
)
const
;
120
125
std::size_t
GetSize
(
void
)
const
;
126
134
void
Send
(
Time
time);
135
143
friend
std::ostream&
operator<<
(std::ostream& out,
ns3::RemoteChannelBundle
& bundle );
144
145
private
:
147
uint32_t
m_remoteSystemId
;
148
153
typedef
std::unordered_map < uint32_t, Ptr < Channel > >
ChannelMap
;
154
ChannelMap
m_channels
;
162
Time
m_guaranteeTime
;
163
168
Time
m_delay
;
169
171
EventId
m_nullEventId
;
172
173
};
174
175
}
176
177
#endif
ns3::EventId
An identifier for simulation events.
Definition:
event-id.h:54
ns3::Object
A base class which provides memory management and object aggregation.
Definition:
object.h:88
ns3::Ptr< Channel >
ns3::RemoteChannelBundle
Collection of ns-3 channels between local and remote nodes.
Definition:
remote-channel-bundle.h:52
ns3::RemoteChannelBundle::~RemoteChannelBundle
~RemoteChannelBundle()
Destructor.
Definition:
remote-channel-bundle.h:70
ns3::RemoteChannelBundle::m_delay
Time m_delay
Delay for this Channel bundle, which is the min link delay over all incoming channels;.
Definition:
remote-channel-bundle.h:168
ns3::RemoteChannelBundle::GetSize
std::size_t GetSize(void) const
Get the number of ns-3 channels in this bundle.
Definition:
remote-channel-bundle.cc:107
ns3::RemoteChannelBundle::SetGuaranteeTime
void SetGuaranteeTime(Time time)
Definition:
remote-channel-bundle.cc:81
ns3::RemoteChannelBundle::GetDelay
Time GetDelay(void) const
Get the minimum delay along any channel in this bundle.
Definition:
remote-channel-bundle.cc:89
ns3::RemoteChannelBundle::GetGuaranteeTime
Time GetGuaranteeTime(void) const
Get the current guarantee time for this bundle.
Definition:
remote-channel-bundle.cc:75
ns3::RemoteChannelBundle::RemoteChannelBundle
RemoteChannelBundle()
Default constructor.
Definition:
remote-channel-bundle.cc:47
ns3::RemoteChannelBundle::SetEventId
void SetEventId(EventId id)
Set the event ID of the Null Message send event currently scheduled for this channel.
Definition:
remote-channel-bundle.cc:95
ns3::RemoteChannelBundle::GetEventId
EventId GetEventId(void) const
Get the event ID of the Null Message send event for this bundle.
Definition:
remote-channel-bundle.cc:101
ns3::RemoteChannelBundle::Send
void Send(Time time)
Definition:
remote-channel-bundle.cc:113
ns3::RemoteChannelBundle::operator<<
friend std::ostream & operator<<(std::ostream &out, ns3::RemoteChannelBundle &bundle)
Output for debugging purposes.
Definition:
remote-channel-bundle.cc:118
ns3::RemoteChannelBundle::m_channels
ChannelMap m_channels
ChannelId to Channel map.
Definition:
remote-channel-bundle.h:154
ns3::RemoteChannelBundle::GetTypeId
static TypeId GetTypeId(void)
Register this type.
Definition:
remote-channel-bundle.cc:38
ns3::RemoteChannelBundle::ChannelMap
std::unordered_map< uint32_t, Ptr< Channel > > ChannelMap
Container of channels that are connected from nodes in this MPI task to nodes in a remote rank.
Definition:
remote-channel-bundle.h:153
ns3::RemoteChannelBundle::m_guaranteeTime
Time m_guaranteeTime
Guarantee time for the incoming Channels from MPI task remote_rank.
Definition:
remote-channel-bundle.h:162
ns3::RemoteChannelBundle::m_remoteSystemId
uint32_t m_remoteSystemId
Remote rank.
Definition:
remote-channel-bundle.h:147
ns3::RemoteChannelBundle::AddChannel
void AddChannel(Ptr< Channel > channel, Time delay)
Add a channel to this bundle.
Definition:
remote-channel-bundle.cc:62
ns3::RemoteChannelBundle::m_nullEventId
EventId m_nullEventId
Event scheduled to send Null Message for this bundle.
Definition:
remote-channel-bundle.h:171
ns3::RemoteChannelBundle::GetSystemId
uint32_t GetSystemId() const
Get the system Id for this side.
Definition:
remote-channel-bundle.cc:69
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition:
nstime.h:103
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:59
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
third.channel
channel
Definition:
third.py:92
null-message-simulator-impl.h
Declaration of class ns3::NullMessageSimulatorImpl.
src
mpi
model
remote-channel-bundle.h
Generated on Tue Feb 6 2024 19:21:25 for ns-3 by
1.9.1