Description
Base class for anyone that could manage state synchronization in a chrono simulation.
#include <SynCommunicationManager.h>
Public Member Functions | |
SynCommunicationManager () | |
Constructs a new SynCommunicationManager object. | |
SynCommunicationManager (int msg_length) | |
Constructs a new SynCommunicationManager object with a starting message length. | |
~SynCommunicationManager () | |
Destory the SynCommunicationManager object. | |
virtual bool | AddAgent (std::shared_ptr< SynAgent > agent) |
Add the specified agent to this manager's list of agents. More... | |
virtual bool | AddAgent (std::shared_ptr< SynAgent > agent, int rank) |
Add the specified agent to this manager's list of agents at the provided rank. More... | |
virtual bool | Initialize () |
Initialize all agents. More... | |
virtual void | Advance (double time_to_next_sync) |
Advance the state of the agent simulated by this rank to the specified timestep. More... | |
virtual void | Synchronize ()=0 |
Synchronize all zombie agents within each ranks environment. | |
virtual void | Barrier ()=0 |
Blocks simulation from proceeding until all ranks have reached this method call. | |
virtual void | GenerateMessages () final |
Adds all messages to the flatbuffer manager and finishes it size-prefixed (if desired) | |
virtual void | GenerateAgentDescriptionMessage () final |
Adds all info messages to the flatbuffer manager and finishes it size-prefixed. | |
virtual void | ProcessMessage (const uint8_t *data) |
Processes all of the messages received. More... | |
virtual void | ProcessMessageBuffer (const SynFlatBuffers::Buffer *buffer) final |
Processes all messages inside a single buffer. More... | |
virtual std::shared_ptr< SynAgent > | AgentFromDescription (const SynFlatBuffers::Buffer *buffer) final |
Processes all messages inside a single buffer. More... | |
std::shared_ptr< SynAgent > | GetAgent (int rank) |
Get agent at specified rank. | |
virtual int | GetRank () final |
Get rank of current manager. | |
virtual int | GetNumRanks () final |
Get the number of ranks in the simulation. | |
virtual std::map< int, std::shared_ptr< SynAgent > > | GetAgentList () final |
Get the agent list. | |
bool | IsOk () |
Is the simulation still running? | |
double | GetHeartbeat () |
Get/Set the heartbeat. | |
void | SetHeartbeat (double heartbeat) |
double | GetEndTime () |
Get/Set the end time. | |
void | SetEndTime (double end_time) |
Protected Attributes | |
bool | m_ok |
Is everything ok? | |
double | m_heartbeat |
double | m_end_time |
int | m_num_advances |
keeps track of the number of updates that have occured so far | |
bool | m_is_synchronized |
keeps track of the whether ranks are time synchronized | |
int | m_rank |
rank which this manager controls | |
int | m_num_ranks |
total number of ranks in this simulation | |
bool | m_initialized |
has the manager been initialized | |
std::shared_ptr< SynAgent > | m_agent |
handle to this rank's agent | |
std::map< int, std::shared_ptr< SynAgent > > | m_agent_list |
id to agent map on this rank | |
std::map< int, std::vector< SynMessage * > > | m_message_list |
received messages mapped to each rank | |
SynFlatBuffersManager | m_flatbuffers_manager |
flatbuffer manager for this rank | |
Member Function Documentation
◆ AddAgent() [1/2]
|
virtual |
Add the specified agent to this manager's list of agents.
- Parameters
-
agent Handle to the agent that will be added
◆ AddAgent() [2/2]
|
virtual |
Add the specified agent to this manager's list of agents at the provided rank.
- Parameters
-
agent Handle to the agent that will be added rank Rank that manages this agent
◆ Advance()
|
virtual |
Advance the state of the agent simulated by this rank to the specified timestep.
- Parameters
-
time_to_next_sync Timestep to advance the agent's ChSystem to
◆ AgentFromDescription()
|
finalvirtual |
Processes all messages inside a single buffer.
Add agents from their description messages
- Parameters
-
buffer A buffer that contains messages received from a particular rank. e.g. state data + other messages
◆ Initialize()
|
virtual |
Initialize all agents.
- Returns
- boolean indicated whether initialization function was successful
Reimplemented in chrono::synchrono::SynMPIManager.
◆ ProcessMessage()
|
virtual |
Processes all of the messages received.
- Parameters
-
data a pointer to the flatbuffer buffer
◆ ProcessMessageBuffer()
|
finalvirtual |
Processes all messages inside a single buffer.
Updates zombie agents and allows agents additional processing.
- Parameters
-
buffer A buffer that contains messages received from a particular rank. e.g. state data + other messages
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_synchrono/communication/SynCommunicationManager.h
- /builds/uwsbel/chrono/src/chrono_synchrono/communication/SynCommunicationManager.cpp