Monero
Classes | Typedefs | Functions | Variables
anonymous_namespace{zmq_pub.cpp} Namespace Reference

Classes

struct  context
 
struct  is_valid
 
struct  minimal_chain
 Object for "minimal" block serialization. More...
 
struct  minimal_txpool
 Object for "minimal" tx serialization. More...
 

Typedefs

using chain_writer = void(epee::byte_stream &, std::uint64_t, epee::span< const cryptonote::block >)
 
using txpool_writer = void(epee::byte_stream &, epee::span< const cryptonote::txpool_event >)
 

Functions

template<typename T >
bool operator< (const context< T > &lhs, const context< T > &rhs) noexcept
 
template<typename T >
bool operator< (const context< T > &lhs, const boost::string_ref rhs) noexcept
 
template<typename T , std::size_t N>
void verify_sorted (const std::array< context< T >, N > &elems, const char *name)
 
void write_header (epee::byte_stream &buf, const boost::string_ref name)
 
template<typename T >
void json_pub (epee::byte_stream &buf, const T value)
 
void toJsonValue (rapidjson::Writer< epee::byte_stream > &dest, const minimal_chain self)
 
void toJsonValue (rapidjson::Writer< epee::byte_stream > &dest, const minimal_txpool self)
 
void json_full_chain (epee::byte_stream &buf, const std::uint64_t height, const epee::span< const cryptonote::block > blocks)
 
void json_minimal_chain (epee::byte_stream &buf, const std::uint64_t height, const epee::span< const cryptonote::block > blocks)
 
void json_full_txpool (epee::byte_stream &buf, epee::span< const cryptonote::txpool_event > txes)
 
void json_minimal_txpool (epee::byte_stream &buf, epee::span< const cryptonote::txpool_event > txes)
 
template<typename T , std::size_t N>
epee::span< const context< T > > get_range (const std::array< context< T >, N > &contexts, const boost::string_ref value)
 
template<std::size_t N, typename T >
void add_subscriptions (std::array< std::size_t, N > &subs, const epee::span< const context< T >> range, context< T > const *const first)
 
template<std::size_t N, typename T >
void remove_subscriptions (std::array< std::size_t, N > &subs, const epee::span< const context< T >> range, context< T > const *const first)
 
template<std::size_t N, typename T , typename... U>
std::array< epee::byte_slice, N > make_pubs (const std::array< std::size_t, N > &subs, const std::array< context< T >, N > &contexts, U &&... args)
 
template<std::size_t N>
std::size_t send_messages (void *const socket, std::array< epee::byte_slice, N > &messages)
 
expect< boolrelay_block_pub (void *const relay, void *const pub) noexcept
 

Variables

constexpr const char txpool_signal [] = "tx_signal"
 
constexpr const std::array< context< chain_writer >, 2 > chain_contexts
 
constexpr const std::array< context< txpool_writer >, 2 > txpool_contexts
 

Typedef Documentation

◆ chain_writer

using anonymous_namespace{zmq_pub.cpp}::chain_writer = typedef void(epee::byte_stream&, std::uint64_t, epee::span<const cryptonote::block>)

◆ txpool_writer

using anonymous_namespace{zmq_pub.cpp}::txpool_writer = typedef void(epee::byte_stream&, epee::span<const cryptonote::txpool_event>)

Function Documentation

◆ add_subscriptions()

template<std::size_t N, typename T >
void anonymous_namespace{zmq_pub.cpp}::add_subscriptions ( std::array< std::size_t, N > &  subs,
const epee::span< const context< T >>  range,
context< T > const *const  first 
)

◆ get_range()

template<typename T , std::size_t N>
epee::span<const context<T> > anonymous_namespace{zmq_pub.cpp}::get_range ( const std::array< context< T >, N > &  contexts,
const boost::string_ref  value 
)

◆ json_full_chain()

void anonymous_namespace{zmq_pub.cpp}::json_full_chain ( epee::byte_stream &  buf,
const std::uint64_t  height,
const epee::span< const cryptonote::block blocks 
)

◆ json_full_txpool()

void anonymous_namespace{zmq_pub.cpp}::json_full_txpool ( epee::byte_stream &  buf,
epee::span< const cryptonote::txpool_event txes 
)

◆ json_minimal_chain()

void anonymous_namespace{zmq_pub.cpp}::json_minimal_chain ( epee::byte_stream &  buf,
const std::uint64_t  height,
const epee::span< const cryptonote::block blocks 
)

◆ json_minimal_txpool()

void anonymous_namespace{zmq_pub.cpp}::json_minimal_txpool ( epee::byte_stream &  buf,
epee::span< const cryptonote::txpool_event txes 
)

◆ json_pub()

template<typename T >
void anonymous_namespace{zmq_pub.cpp}::json_pub ( epee::byte_stream &  buf,
const T  value 
)
Returns
name:... where ... is JSON and name is directly copied (no quotes - not JSON).

◆ make_pubs()

template<std::size_t N, typename T , typename... U>
std::array<epee::byte_slice, N> anonymous_namespace{zmq_pub.cpp}::make_pubs ( const std::array< std::size_t, N > &  subs,
const std::array< context< T >, N > &  contexts,
U &&...  args 
)

◆ operator<() [1/2]

template<typename T >
bool anonymous_namespace{zmq_pub.cpp}::operator< ( const context< T > &  lhs,
const boost::string_ref  rhs 
)
noexcept

◆ operator<() [2/2]

template<typename T >
bool anonymous_namespace{zmq_pub.cpp}::operator< ( const context< T > &  lhs,
const context< T > &  rhs 
)
noexcept

◆ relay_block_pub()

expect<bool> anonymous_namespace{zmq_pub.cpp}::relay_block_pub ( void *const  relay,
void *const  pub 
)
noexcept

◆ remove_subscriptions()

template<std::size_t N, typename T >
void anonymous_namespace{zmq_pub.cpp}::remove_subscriptions ( std::array< std::size_t, N > &  subs,
const epee::span< const context< T >>  range,
context< T > const *const  first 
)

◆ send_messages()

template<std::size_t N>
std::size_t anonymous_namespace{zmq_pub.cpp}::send_messages ( void *const  socket,
std::array< epee::byte_slice, N > &  messages 
)

◆ toJsonValue() [1/2]

void anonymous_namespace{zmq_pub.cpp}::toJsonValue ( rapidjson::Writer< epee::byte_stream > &  dest,
const minimal_chain  self 
)

◆ toJsonValue() [2/2]

void anonymous_namespace{zmq_pub.cpp}::toJsonValue ( rapidjson::Writer< epee::byte_stream > &  dest,
const minimal_txpool  self 
)

◆ verify_sorted()

template<typename T , std::size_t N>
void anonymous_namespace{zmq_pub.cpp}::verify_sorted ( const std::array< context< T >, N > &  elems,
const char *  name 
)

◆ write_header()

void anonymous_namespace{zmq_pub.cpp}::write_header ( epee::byte_stream &  buf,
const boost::string_ref  name 
)

Variable Documentation

◆ chain_contexts

constexpr const std::array<context<chain_writer>, 2> anonymous_namespace{zmq_pub.cpp}::chain_contexts
constexpr
Initial value:
=
{{
{u8"json-full-chain_main", json_full_chain},
{u8"json-minimal-chain_main", json_minimal_chain}
}}
void json_full_chain(epee::byte_stream &buf, const std::uint64_t height, const epee::span< const cryptonote::block > blocks)
Definition: zmq_pub.cpp:162
void json_minimal_chain(epee::byte_stream &buf, const std::uint64_t height, const epee::span< const cryptonote::block > blocks)
Definition: zmq_pub.cpp:167

◆ txpool_contexts

constexpr const std::array<context<txpool_writer>, 2> anonymous_namespace{zmq_pub.cpp}::txpool_contexts
constexpr
Initial value:
=
{{
{u8"json-full-txpool_add", json_full_txpool},
{u8"json-minimal-txpool_add", json_minimal_txpool}
}}
void json_full_txpool(epee::byte_stream &buf, epee::span< const cryptonote::txpool_event > txes)
Definition: zmq_pub.cpp:175
void json_minimal_txpool(epee::byte_stream &buf, epee::span< const cryptonote::txpool_event > txes)
Definition: zmq_pub.cpp:185

◆ txpool_signal

constexpr const char anonymous_namespace{zmq_pub.cpp}::txpool_signal[] = "tx_signal"
constexpr