Skip to content

sgns::message_parser

#include <common.hpp>

Public Types

Name
enum class parse_status

Public Functions

Name
message_parser(sgns::network_filter & publish_filter_a, sgns::block_uniquer & block_uniquer_a, sgns::vote_uniquer & vote_uniquer_a, sgns::message_visitor & visitor_a, sgns::work_pool & pool_a, bool use_epoch_2_min_version_a)
void deserialize_buffer(uint8_t const * buffer_a, size_t size_a)
void deserialize_keepalive(sgns::stream & stream_a, sgns::message_header const & header_a)
void deserialize_publish(sgns::stream & stream_a, sgns::message_header const & header_a, sgns::uint128_t const & digest_a =0)
void deserialize_confirm_req(sgns::stream & stream_a, sgns::message_header const & header_a)
void deserialize_confirm_ack(sgns::stream & stream_a, sgns::message_header const & header_a)
void deserialize_node_id_handshake(sgns::stream & stream_a, sgns::message_header const & header_a)
void deserialize_telemetry_req(sgns::stream & stream_a, sgns::message_header const & header_a)
void deserialize_telemetry_ack(sgns::stream & stream_a, sgns::message_header const & header_a)
bool at_end(sgns::stream & stream_a)
std::string status_string()

Public Attributes

Name
sgns::network_filter & publish_filter
sgns::block_uniquer & block_uniquer
sgns::vote_uniquer & vote_uniquer
sgns::message_visitor & visitor
sgns::work_pool & pool
parse_status status
bool use_epoch_2_min_version
const size_t max_safe_udp_message_size

Public Types Documentation

enum parse_status

Enumerator Value Description
success
insufficient_work
invalid_header
invalid_message_type
invalid_keepalive_message
invalid_publish_message
invalid_confirm_req_message
invalid_confirm_ack_message
invalid_node_id_handshake_message
invalid_telemetry_req_message
invalid_telemetry_ack_message
outdated_version
invalid_magic
invalid_network
duplicate_publish_message

Public Functions Documentation

function message_parser

message_parser(
    sgns::network_filter & publish_filter_a,
    sgns::block_uniquer & block_uniquer_a,
    sgns::vote_uniquer & vote_uniquer_a,
    sgns::message_visitor & visitor_a,
    sgns::work_pool & pool_a,
    bool use_epoch_2_min_version_a
)

function deserialize_buffer

void deserialize_buffer(
    uint8_t const * buffer_a,
    size_t size_a
)

function deserialize_keepalive

void deserialize_keepalive(
    sgns::stream & stream_a,
    sgns::message_header const & header_a
)

function deserialize_publish

void deserialize_publish(
    sgns::stream & stream_a,
    sgns::message_header const & header_a,
    sgns::uint128_t const & digest_a =0
)

function deserialize_confirm_req

void deserialize_confirm_req(
    sgns::stream & stream_a,
    sgns::message_header const & header_a
)

function deserialize_confirm_ack

void deserialize_confirm_ack(
    sgns::stream & stream_a,
    sgns::message_header const & header_a
)

function deserialize_node_id_handshake

void deserialize_node_id_handshake(
    sgns::stream & stream_a,
    sgns::message_header const & header_a
)

function deserialize_telemetry_req

void deserialize_telemetry_req(
    sgns::stream & stream_a,
    sgns::message_header const & header_a
)

function deserialize_telemetry_ack

void deserialize_telemetry_ack(
    sgns::stream & stream_a,
    sgns::message_header const & header_a
)

function at_end

bool at_end(
    sgns::stream & stream_a
)

function status_string

std::string status_string()

Public Attributes Documentation

variable publish_filter

sgns::network_filter & publish_filter;

variable block_uniquer

sgns::block_uniquer & block_uniquer;

variable vote_uniquer

sgns::vote_uniquer & vote_uniquer;

variable visitor

sgns::message_visitor & visitor;

variable pool

sgns::work_pool & pool;

variable status

parse_status status;

variable use_epoch_2_min_version

bool use_epoch_2_min_version;

variable max_safe_udp_message_size

static const size_t max_safe_udp_message_size = 508;

Updated on 2026-03-04 at 13:10:43 -0800