helics 3.7.0
Loading...
Searching...
No Matches
ZmqComms.h
1/*
2Copyright (c) 2017-2026,
3Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Energy
4Innovation LLC. See the top-level NOTICE for additional details. All rights reserved.
5SPDX-License-Identifier: BSD-3-Clause
6*/
7
8#pragma once
9
10#include "../NetworkCommsInterface.hpp"
11
12#include <atomic>
13#include <set>
14#include <string>
15
16namespace zmq {
17class message_t;
18class socket_t;
19} // namespace zmq
20namespace helics {
21namespace zeromq {
23 class ZmqComms final: public NetworkCommsInterface {
24 public:
26 ZmqComms() noexcept;
28 ~ZmqComms();
30 virtual void loadNetworkInfo(const NetworkBrokerData& netInfo) override;
33 private:
34 virtual int getDefaultBrokerPort() const override;
35 virtual void queue_rx_function() override;
36 virtual void queue_tx_function() override;
37 virtual void closeReceiver() override;
38
41 int processIncomingMessage(zmq::message_t& msg);
44 int replyToIncomingMessage(zmq::message_t& msg, zmq::socket_t& sock);
45
46 int initializeBrokerConnections(zmq::socket_t& controlSocket);
47
48 public:
49 std::string getPushAddress() const;
50 };
51
52} // namespace zeromq
53} // namespace helics
Definition NetworkBrokerData.hpp:23
Definition NetworkCommsInterface.hpp:18
Definition ZmqComms.h:23
virtual void loadNetworkInfo(const NetworkBrokerData &netInfo) override
Definition ZmqComms.cpp:32
ZmqComms() noexcept
Definition ZmqComms.cpp:58
~ZmqComms()
Definition ZmqComms.cpp:61
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition AsyncFedCallInfo.hpp:14