Singleton for managing the RemoteChannelBundles for each process.  
 More...
#include "remote-channel-bundle-manager.h"
 Collaboration diagram for ns3::RemoteChannelBundleManager:
 Collaboration diagram for ns3::RemoteChannelBundleManager:| Static Public Member Functions | |
| static Ptr< RemoteChannelBundle > | Add (uint32_t systemId) | 
| Add RemoteChannelBundle from this task to MPI task on other side of the link.  More... | |
| static void | Destroy (void) | 
| Destroy the singleton.  More... | |
| static Ptr< RemoteChannelBundle > | Find (uint32_t systemId) | 
| Get the bundle corresponding to a remote rank.  More... | |
| static Time | GetSafeTime (void) | 
| Get the safe time across all channels in this bundle.  More... | |
| static void | InitializeNullMessageEvents (void) | 
| Setup initial Null Message events for every RemoteChannelBundle.  More... | |
| static std::size_t | Size (void) | 
| Get the number of ns-3 channels in this bundle.  More... | |
| Private Types | |
| typedef std::unordered_map< uint32_t, Ptr< RemoteChannelBundle > > | RemoteChannelMap | 
| Container for all remote channel bundles for this task.  More... | |
| Private Member Functions | |
| RemoteChannelBundleManager () | |
| Private ctor to prevent creation outside of singleton pattern.  More... | |
| ~RemoteChannelBundleManager () | |
| Private dtor to prevent destruction outside of singleton pattern.  More... | |
| Static Private Attributes | |
| static bool | g_initialized = false | 
| Protect manager class from being initialized twice or incorrect ordering of method calls.  More... | |
| static RemoteChannelMap | g_remoteChannelBundles | 
| The remote channel bundles.  More... | |
Singleton for managing the RemoteChannelBundles for each process.
Manages collective tasks associated with the bundle collection.
Definition at line 46 of file remote-channel-bundle-manager.h.
| 
 | private | 
Container for all remote channel bundles for this task.
Definition at line 109 of file remote-channel-bundle-manager.h.
| 
 | inlineprivate | 
Private ctor to prevent creation outside of singleton pattern.
Definition at line 94 of file remote-channel-bundle-manager.h.
| 
 | inlineprivate | 
Private dtor to prevent destruction outside of singleton pattern.
Definition at line 101 of file remote-channel-bundle-manager.h.
| 
 | static | 
Add RemoteChannelBundle from this task to MPI task on other side of the link.
Can not be invoked after InitializeNullMessageEvents has been invoked.
| [in] | systemId | The remote system id. | 
Definition at line 56 of file remote-channel-bundle-manager.cc.
References g_initialized, g_remoteChannelBundles, and NS_ASSERT.
Referenced by ns3::NullMessageSimulatorImpl::CalculateLookAhead().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Destroy the singleton.
Definition at line 110 of file remote-channel-bundle-manager.cc.
References g_initialized, g_remoteChannelBundles, and NS_ASSERT.
Referenced by ns3::NullMessageSimulatorImpl::Destroy().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Get the bundle corresponding to a remote rank.
| [in] | systemId | The remote system id. | 
Definition at line 41 of file remote-channel-bundle-manager.cc.
References g_remoteChannelBundles.
Referenced by ns3::NullMessageSimulatorImpl::CalculateGuaranteeTime(), ns3::NullMessageSimulatorImpl::CalculateLookAhead(), ns3::NullMessageMpiInterface::InitializeSendReceiveBuffers(), ns3::NullMessageMpiInterface::ReceiveMessages(), and ns3::NullMessageSimulatorImpl::RescheduleNullMessageEvent().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Get the safe time across all channels in this bundle.
Definition at line 93 of file remote-channel-bundle-manager.cc.
References g_initialized, g_remoteChannelBundles, ns3::Simulator::GetMaximumSimulationTime(), ns3::Min(), and NS_ASSERT.
Referenced by ns3::NullMessageSimulatorImpl::CalculateSafeTime().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Setup initial Null Message events for every RemoteChannelBundle.
All RemoteChannelBundles should be added before this method is invoked.
Definition at line 75 of file remote-channel-bundle-manager.cc.
References g_initialized, g_remoteChannelBundles, ns3::NullMessageSimulatorImpl::GetInstance(), NS_ASSERT, and ns3::NullMessageSimulatorImpl::ScheduleNullMessageEvent().
Referenced by ns3::NullMessageSimulatorImpl::Run().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Get the number of ns-3 channels in this bundle.
Definition at line 69 of file remote-channel-bundle-manager.cc.
References g_remoteChannelBundles.
Referenced by ns3::NullMessageMpiInterface::InitializeSendReceiveBuffers().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | staticprivate | 
Protect manager class from being initialized twice or incorrect ordering of method calls.
Definition at line 117 of file remote-channel-bundle-manager.h.
Referenced by Add(), Destroy(), GetSafeTime(), and InitializeNullMessageEvents().
| 
 | staticprivate | 
The remote channel bundles.
Definition at line 111 of file remote-channel-bundle-manager.h.
Referenced by Add(), Destroy(), Find(), GetSafeTime(), InitializeNullMessageEvents(), and Size().