33#include <boost/thread/mutex.hpp>
34#include <boost/utility/string_ref.hpp>
62 std::deque<std::vector<txpool_event>>
txes_;
70 static constexpr const char*
relay_endpoint() noexcept {
return "inproc://pub_relay"; }
72 explicit zmq_pub(
void* context);
102 std::size_t
send_txpool_add(std::vector<cryptonote::txpool_event> txes);
122 void operator()(std::vector<cryptonote::txpool_event> txes)
const;
std::array< std::size_t, 1 > miner_subs_
Definition zmq_pub.h:64
std::deque< std::vector< txpool_event > > txes_
Definition zmq_pub.h:62
zmq_pub(const zmq_pub &)=delete
boost::mutex sync_
Synchronizes counts in *_subs_ arrays.
Definition zmq_pub.h:66
zmq_pub & operator=(const zmq_pub &)=delete
zmq_pub(zmq_pub &&)=delete
std::array< std::size_t, 2 > chain_subs_
Definition zmq_pub.h:63
~zmq_pub()
Definition zmq_pub.cpp:381
static constexpr const char * relay_endpoint() noexcept
Definition zmq_pub.h:70
std::size_t send_miner_data(uint8_t major_version, uint64_t height, const crypto::hash &prev_id, const crypto::hash &seed_hash, difficulty_type diff, uint64_t median_weight, uint64_t already_generated_coins, const std::vector< tx_block_template_backlog_entry > &tx_backlog)
Definition zmq_pub.cpp:483
std::array< std::size_t, 2 > txpool_subs_
Definition zmq_pub.h:65
zmq_pub & operator=(zmq_pub &&)=delete
bool relay_to_pub(void *relay, void *pub)
Definition zmq_pub.cpp:422
std::size_t send_txpool_add(std::vector< cryptonote::txpool_event > txes)
Definition zmq_pub.cpp:502
zmq_pub(void *context)
Definition zmq_pub.cpp:360
net::zmq::socket relay_
Definition zmq_pub.h:61
bool sub_request(const boost::string_ref message)
Process a client subscription request (from XPUB sockets). Thread-safe.
Definition zmq_pub.cpp:384
std::size_t send_chain_main(std::uint64_t height, epee::span< const cryptonote::block > blocks)
Definition zmq_pub.cpp:454
Non-owning sequence of data. Does not deep copy.
Definition span.h:55
POD_CLASS hash
Definition hash.h:49
Holds cryptonote related classes and helpers.
Definition blockchain_db.cpp:45
boost::multiprecision::uint128_t difficulty_type
Definition difficulty.h:41
std::unique_ptr< void, close > socket
Unique ZMQ socket handle, calls zmq_close on destruction.
Definition zmq.h:108
unsigned char uint8_t
Definition stdint.h:124
unsigned __int64 uint64_t
Definition stdint.h:136
Callable for send_chain_main with weak ownership to zmq_pub object.
Definition zmq_pub.h:106
void operator()(std::uint64_t height, epee::span< const cryptonote::block > blocks) const
Definition zmq_pub.cpp:523
std::weak_ptr< zmq_pub > self_
Definition zmq_pub.h:107
Callable for send_miner_data with weak ownership to zmq_pub object.
Definition zmq_pub.h:113
std::weak_ptr< zmq_pub > self_
Definition zmq_pub.h:114
void operator()(uint8_t major_version, uint64_t height, const crypto::hash &prev_id, const crypto::hash &seed_hash, difficulty_type diff, uint64_t median_weight, uint64_t already_generated_coins, const std::vector< tx_block_template_backlog_entry > &tx_backlog) const
Definition zmq_pub.cpp:532
Callable for send_txpool_add with weak ownership to zmq_pub object.
Definition zmq_pub.h:120
void operator()(std::vector< cryptonote::txpool_event > txes) const
Definition zmq_pub.cpp:541
std::weak_ptr< zmq_pub > self_
Definition zmq_pub.h:121