helics  3.5.1
Public Member Functions | List of all members
helics::mpi::MpiComms Class Referencefinal

#include <MpiComms.h>

+ Inheritance diagram for helics::mpi::MpiComms:

Public Member Functions

 MpiComms ()
 
 ~MpiComms ()
 
void setBrokerAddress (const std::string &address)
 
std::string getAddress ()
 
gmlc::containers::BlockingQueue< ActionMessage > & getRxMessageQueue ()
 
gmlc::containers::BlockingQueue< std::pair< std::pair< int, int >, std::vector< char > > > & getTxMessageQueue ()
 
- Public Member Functions inherited from helics::CommsInterface
 CommsInterface ()=default
 
 CommsInterface (thread_generation threads)
 
virtual ~CommsInterface ()
 
virtual void loadNetworkInfo (const NetworkBrokerData &netInfo)
 
void loadTargetInfo (std::string_view localTarget, std::string_view brokerTarget, gmlc::networking::InterfaceNetworks targetNetwork=gmlc::networking::InterfaceNetworks::LOCAL)
 
void transmit (route_id rid, const ActionMessage &cmd)
 
void transmit (route_id rid, ActionMessage &&cmd)
 
void addRoute (route_id rid, std::string_view routeInfo)
 
void removeRoute (route_id rid)
 
bool connect ()
 
void disconnect ()
 
bool reconnect ()
 
void setName (const std::string &commName)
 
void setRequireBrokerConnection (bool requireBrokerConnection)
 
void setCallback (std::function< void(ActionMessage &&)> callback)
 
void setLoggingCallback (std::function< void(int level, std::string_view name, std::string_view message)> callback)
 
void setMessageSize (int maxMsgSize, int maxCount)
 
bool isConnected () const
 
void setTimeout (std::chrono::milliseconds timeOut)
 
virtual void setFlag (std::string_view flag, bool val)
 
void setServerMode (bool serverActive)
 
void logWarning (std::string_view message) const
 
void logError (std::string_view message) const
 
void logMessage (std::string_view message) const
 

Additional Inherited Members

- Public Types inherited from helics::CommsInterface
enum class  thread_generation { single , dual }
 
- Protected Types inherited from helics::CommsInterface
enum class  ConnectionStatus : int {
  STARTUP = -1 , CONNECTED = 0 , RECONNECTING = 1 , TERMINATED = 2 ,
  ERRORED = 4
}
 
- Protected Member Functions inherited from helics::CommsInterface
void setTxStatus (ConnectionStatus status)
 
void setRxStatus (ConnectionStatus status)
 
ConnectionStatus getRxStatus () const
 
ConnectionStatus getTxStatus () const
 
bool propertyLock ()
 
void propertyUnLock ()
 
void join_tx_rx_thread ()
 
const std::string & getRandomID () const
 
- Protected Attributes inherited from helics::CommsInterface
gmlc::concurrency::TriggerVariable rxTrigger
 
std::string name
 the name of the object
 
std::string localTargetAddress
 the base for the receive address
 
std::string brokerTargetAddress
 the base for the broker address
 
std::string brokerName
 
std::string brokerInitString
 the initialization string for any automatically generated broker
 
bool mRequireBrokerConnection
 specify that the comms should assume we have a broker More...
 
bool serverMode {true}
 some comms have a server mode and non-server mode
 
bool autoBroker {false}
 the broker should be automatically generated if needed
 
bool useJsonSerialization {false}
 true to make all connections use JSON serialization
 
bool observer {false}
 true for connections that are for observation only
 
std::chrono::milliseconds connectionTimeout {4000}
 
int maxMessageSize = 16 * 1024
 the maximum message size for the queues (if needed)
 
int maxMessageCount = 512
 the maximum number of message to buffer (if needed)
 
std::atomic< bool > requestDisconnect {false}
 flag gets set when disconnect is called
 
std::function< void(ActionMessage &&)> ActionCallback
 the callback for what to do with a received message
 
std::function< void(int level, std::string_view name, std::string_view message)> loggingCallback
 callback for logging
 
gmlc::containers::BlockingPriorityQueue< std::pair< route_id, ActionMessage > > txQueue
 set of messages waiting to be transmitted
 
std::atomic< bool > disconnecting
 flag indicating that the comm system is in the process of disconnecting More...
 
gmlc::networking::InterfaceNetworks interfaceNetwork
 

Detailed Description

implementation for the communication interface that uses MPI to communicate

Constructor & Destructor Documentation

◆ MpiComms()

helics::mpi::MpiComms::MpiComms ( )

◆ ~MpiComms()

helics::mpi::MpiComms::~MpiComms ( )

destructor

References helics::CommsInterface::disconnect().


The documentation for this class was generated from the following files: