aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/zmq_server.h
diff options
context:
space:
mode:
authorLee Clagett <code@leeclagett.com>2020-03-16 23:59:26 +0000
committerLee Clagett <code@leeclagett.com>2020-05-04 02:06:35 +0000
commite5214a2ca22cecf123bcff1ab441ed0415d08a6f (patch)
tree75a052bb95f6087421c8fedde549d6930c5af847 /src/rpc/zmq_server.h
parentMerge pull request #6586 (diff)
downloadmonero-e5214a2ca22cecf123bcff1ab441ed0415d08a6f.tar.xz
Adding ZMQ/Pub support for txpool_add and chain_main events
Diffstat (limited to 'src/rpc/zmq_server.h')
-rw-r--r--src/rpc/zmq_server.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/rpc/zmq_server.h b/src/rpc/zmq_server.h
index 1143db839..ddf44b411 100644
--- a/src/rpc/zmq_server.h
+++ b/src/rpc/zmq_server.h
@@ -30,10 +30,16 @@
#include <boost/thread/thread.hpp>
#include <boost/utility/string_ref.hpp>
+#include <cstdint>
+#include <memory>
+#include <string>
#include "common/command_line.h"
+#include "cryptonote_basic/fwd.h"
#include "net/zmq.h"
-#include "rpc_handler.h"
+#include "rpc/fwd.h"
+#include "rpc/rpc_handler.h"
+#include "span.h"
namespace cryptonote
{
@@ -41,7 +47,7 @@ namespace cryptonote
namespace rpc
{
-class ZmqServer
+class ZmqServer final
{
public:
@@ -49,12 +55,13 @@ class ZmqServer
~ZmqServer();
- static void init_options(boost::program_options::options_description& desc);
-
void serve();
- bool addIPCSocket(boost::string_ref address, boost::string_ref port);
- bool addTCPSocket(boost::string_ref address, boost::string_ref port);
+ //! \return ZMQ context on success, `nullptr` on failure
+ void* init_rpc(boost::string_ref address, boost::string_ref port);
+
+ //! \return `nullptr` on errors.
+ std::shared_ptr<listener::zmq_pub> init_pub(epee::span<const std::string> addresses);
void run();
void stop();
@@ -67,9 +74,11 @@ class ZmqServer
boost::thread run_thread;
net::zmq::socket rep_socket;
+ net::zmq::socket pub_socket;
+ net::zmq::socket relay_socket;
+ std::shared_ptr<listener::zmq_pub> shared_state;
};
-
} // namespace cryptonote
} // namespace rpc