10 #ifndef CORAL_BUS_SLAVE_CONTROL_MESSENGER_V0_HPP 11 #define CORAL_BUS_SLAVE_CONTROL_MESSENGER_V0_HPP 16 #include "coral/config.h" 24 #include "boost/variant.hpp" 28 namespace google {
namespace protobuf {
class MessageLite; } }
55 SlaveState State()
const CORAL_NOEXCEPT
override;
57 void Close()
override;
88 void Terminate()
override;
91 typedef boost::variant<VoidHandler, GetDescriptionHandler> AnyHandler;
104 const google::protobuf::MessageLite* data,
106 AnyHandler onComplete);
107 void PostSendCommand(
110 AnyHandler onComplete);
112 void UnregisterTimeout();
116 void OnReplyTimeout();
119 void SetupReplyReceived(
122 void DescribeReplyReceived(
125 void SetPeersReplyReceived(
128 void SetVarsReplyReceived(
131 void ResendVarsReplyReceived(
134 void StepReplyReceived(
137 void AcceptStepReplyReceived(
143 void HandleExpectedReadyReply(
146 void HandleErrorReply(
int reply, AnyHandler onComplete);
149 void CheckInvariant()
const;
156 bool m_attachedToReactor;
157 int m_currentCommand;
158 AnyHandler m_onComplete;
159 int m_replyTimeoutTimerId;
164 #endif // header guard Defines the coral::bus::SlaveSetup class.
Contains the coral::net::Reactor class and related functionality.
Main module header for coral::net.
Configuration data which is sent to each slave as they are added to the simulation.
Definition: slave_setup.hpp:27
Module header for coral::net::zmqx.
Defines the coral::bus::ISlaveControlMessenger interface and the two related functions ConnectToSlave...
A client socket for communication with a single server node.
Definition: zmqx.hpp:153
Definition: variable_io.hpp:28
SlaveState
The various states a slave may be in.
Definition: slave_control_messenger.hpp:41
double TimeDuration
The type used to specify (simulation) time durations.
Definition: model.hpp:56
An implementation of ISlaveControlMessenger for version 0 of the master/slave communication protocol...
Definition: slave_control_messenger_v0.hpp:41
An interface for classes that implement various versions of the master/slave communication protocol...
Definition: slave_control_messenger.hpp:141
Definition: slave_control_messenger_v0.hpp:28
An implementation of the reactor pattern.
Definition: reactor.hpp:41
Main module header for coral::model.
double TimePoint
The type used to specify (simulation) time points.
Definition: model.hpp:42