32 #include <boost/thread/mutex.hpp>
33 #include <boost/utility/string_ref.hpp>
60 std::deque<std::vector<txpool_event>>
txes_;
67 static constexpr
const char*
relay_endpoint() noexcept {
return "inproc://pub_relay"; }
94 std::size_t
send_txpool_add(std::vector<cryptonote::txpool_event> txes);
100 void operator()(std::uint64_t height, epee::span<const cryptonote::block>
blocks)
const;
107 void operator()(std::vector<cryptonote::txpool_event> txes)
const;
Sends ZMQ PUB messages on cryptonote events.
Definition: zmq_pub.h:54
std::deque< std::vector< txpool_event > > txes_
Definition: zmq_pub.h:60
zmq_pub(const zmq_pub &)=delete
boost::mutex sync_
Synchronizes counts in *_subs_ arrays.
Definition: zmq_pub.h:63
zmq_pub(zmq_pub &&)=delete
std::array< std::size_t, 2 > chain_subs_
Definition: zmq_pub.h:61
~zmq_pub()
Definition: zmq_pub.cpp:340
static constexpr const char * relay_endpoint() noexcept
Definition: zmq_pub.h:67
zmq_pub & operator=(zmq_pub &&)=delete
std::array< std::size_t, 2 > txpool_subs_
Definition: zmq_pub.h:62
bool relay_to_pub(void *relay, void *pub)
Definition: zmq_pub.cpp:378
zmq_pub & operator=(const zmq_pub &)=delete
std::size_t send_txpool_add(std::vector< cryptonote::txpool_event > txes)
Definition: zmq_pub.cpp:439
zmq_pub(void *context)
Definition: zmq_pub.cpp:321
net::zmq::socket relay_
Definition: zmq_pub.h:59
bool sub_request(const boost::string_ref message)
Process a client subscription request (from XPUB sockets). Thread-safe.
Definition: zmq_pub.cpp:343
std::size_t send_chain_main(std::uint64_t height, epee::span< const cryptonote::block > blocks)
Definition: zmq_pub.cpp:410
Definition: blocks.cpp:13
Holds cryptonote related classes and helpers.
Definition: blockchain_db.cpp:45
std::unique_ptr< void, close > socket
Unique ZMQ socket handle, calls zmq_close on destruction.
Definition: zmq.h:108
std::unique_ptr< void, terminate > context
Unique ZMQ context handle, calls zmq_term on destruction.
Definition: zmq.h:105
Callable for send_chain_main with weak ownership to zmq_pub object.
Definition: zmq_pub.h:98
void operator()(std::uint64_t height, epee::span< const cryptonote::block > blocks) const
Definition: zmq_pub.cpp:460
std::weak_ptr< zmq_pub > self_
Definition: zmq_pub.h:99
Callable for send_txpool_add with weak ownership to zmq_pub object.
Definition: zmq_pub.h:105
void operator()(std::vector< cryptonote::txpool_event > txes) const
Definition: zmq_pub.cpp:469
std::weak_ptr< zmq_pub > self_
Definition: zmq_pub.h:106