 |
helics
3.3.0
|
9 #include "../NetworkCommsInterface.hpp"
10 #include "gmlc/containers/BlockingQueue.hpp"
17 namespace gmlc::networking {
18 class AsioContextManager;
22 namespace helics::tcp {
34 virtual void setFlag(std::string_view flag,
bool val)
override;
37 bool reuse_address{
false};
38 std::string encryption_config;
39 virtual int getDefaultBrokerPort()
const override;
40 virtual void queue_rx_function()
override;
41 virtual void queue_tx_function()
override;
43 virtual void closeReceiver()
override;
46 bool establishBrokerConnection(
47 std::shared_ptr<gmlc::networking::AsioContextManager>& ioctx,
48 std::shared_ptr<gmlc::networking::TcpConnection>& brokerConnection);
53 gmlc::containers::BlockingQueue<ActionMessage> rxMessageQueue;
55 void txReceive(
const char* data,
size_t bytes_received,
const std::string& errorMessage);
63 size_t dataReceive(gmlc::networking::TcpConnection* connection,
65 size_t bytes_received);
std::string brokerTargetAddress
the base for the broker address
Definition: CommsInterface.hpp:125
bool propertyLock()
Definition: CommsInterface.cpp:153
TcpComms() noexcept
Definition: TcpComms.cpp:27
virtual void setFlag(std::string_view flag, bool val) override
Definition: NetworkCommsInterface.cpp:209
@ processed
the message was used to update the current state
std::atomic< bool > disconnecting
flag indicating that the comm system is in the process of disconnecting
Definition: CommsInterface.hpp:158
std::atomic< int > PortNumber
port to use for the local connection
Definition: NetworkCommsInterface.hpp:60
~TcpComms()
Definition: TcpComms.cpp:64
std::string brokerInitString
the initialization string for any automatically generated broker
Definition: CommsInterface.hpp:128
Definition: NetworkBrokerData.hpp:23
std::chrono::milliseconds connectionTimeout
Definition: CommsInterface.hpp:146
Definition: ActionMessage.hpp:30
ActionMessage generateReplyToIncomingMessage(ActionMessage &cmd)
Definition: NetworkCommsInterface.cpp:226
virtual void setFlag(std::string_view flag, bool val) override
Definition: TcpComms.cpp:46
void logError(std::string_view message) const
Definition: CommsInterface.cpp:581
gmlc::containers::BlockingPriorityQueue< std::pair< route_id, ActionMessage > > txQueue
set of messages waiting to be transmitted
Definition: CommsInterface.hpp:155
virtual void loadNetworkInfo(const NetworkBrokerData &netInfo) override
Definition: TcpComms.cpp:35
void logMessage(std::string_view message) const
Definition: CommsInterface.cpp:563
bool autoPortNumber
use an automatic port numbering based on broker responses
Definition: NetworkCommsInterface.hpp:61
std::function< void(ActionMessage &&)> ActionCallback
the callback for what to do with a received message
Definition: CommsInterface.hpp:151
void disconnect()
Definition: CommsInterface.cpp:385
void logWarning(std::string_view message) const
Definition: CommsInterface.cpp:572
int brokerPort
standardized broker port to use for connection to the brokers
Definition: NetworkCommsInterface.hpp:59
std::string localTargetAddress
the base for the receive address
Definition: CommsInterface.hpp:124
bool reuse_address
Definition: NetworkBrokerData.hpp:48
std::string brokerName
Definition: CommsInterface.hpp:126
std::string prettyPrintString(const ActionMessage &command)
Definition: ActionMessage.cpp:846
bool isDisconnectCommand(const ActionMessage &command) noexcept
Definition: ActionMessage.hpp:277
std::atomic< bool > requestDisconnect
flag gets set when disconnect is called
Definition: CommsInterface.hpp:149
virtual void loadNetworkInfo(const NetworkBrokerData &netInfo) override
Definition: NetworkCommsInterface.cpp:97
bool noAckConnection
flag to bypass the connection acknowledge requirement
Definition: NetworkCommsInterface.hpp:64
Definition: TcpComms.h:25
bool isProtocolCommand(const ActionMessage &command) noexcept
Definition: ActionMessage.hpp:226
ConnectionStatus
Definition: CommsInterface.hpp:107
const char * actionMessageType(action_message_def::action_t action)
Definition: ActionMessage.cpp:811
bool encrypted
Definition: NetworkCommsInterface.hpp:65
Definition: NetworkCommsInterface.hpp:18
int maxMessageSize
the maximum message size for the queues (if needed)
Definition: CommsInterface.hpp:147
@ HELICS_CORE_TYPE_TCP
Definition: helics_enums.h:39