TARAXA
taraxa::network::tarcap::PacketHandler Class Referenceabstract

Packet handler base class that consists of shared state and some commonly used functions. More...

#include <packet_handler.hpp>

Collaboration diagram for taraxa::network::tarcap::PacketHandler:

Public Member Functions

 PacketHandler (const FullNodeConfig &conf, std::shared_ptr< PeersState > peers_state, std::shared_ptr< TimePeriodPacketsStats > packets_stats, const addr_t &node_addr, const std::string &log_channel_name)
 
virtual ~PacketHandler ()=default
 
 PacketHandler (const PacketHandler &)=default
 
 PacketHandler (PacketHandler &&)=default
 
PacketHandleroperator= (const PacketHandler &)=delete
 
PacketHandleroperator= (PacketHandler &&)=delete
 
void processPacket (const threadpool::PacketData &packet_data)
 Packet processing function wrapper that logs packet stats and calls process function. More...
 
void requestPbftNextVotesAtPeriodRound (const dev::p2p::NodeID &peerID, PbftPeriod pbft_period, PbftRound pbft_round)
 

Protected Member Functions

void checkPacketRlpIsList (const threadpool::PacketData &packet_data) const
 Checks if packet rlp is a list, if not it throws InvalidRlpItemsCountException. More...
 
bool sealAndSend (const dev::p2p::NodeID &nodeID, SubprotocolPacketType packet_type, dev::RLPStream &&rlp)
 
void disconnect (const dev::p2p::NodeID &node_id, dev::p2p::DisconnectReason reason)
 

Protected Attributes

const FullNodeConfigkConf
 
std::shared_ptr< PeersStatepeers_state_ {nullptr}
 
std::shared_ptr< TimePeriodPacketsStatspackets_stats_
 

Private Member Functions

void handle_caught_exception (std::string_view exception_msg, const threadpool::PacketData &packet_data, const dev::p2p::NodeID &peer, dev::p2p::DisconnectReason disconnect_reason=dev::p2p::DisconnectReason::UserReason, bool set_peer_as_malicious=false)
 
virtual void process (const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer)=0
 Main packet processing function. More...
 
virtual void validatePacketRlpFormat (const threadpool::PacketData &packet_data) const =0
 Validates packet rlp format - items count. More...
 

Detailed Description

Packet handler base class that consists of shared state and some commonly used functions.

Constructor & Destructor Documentation

◆ PacketHandler() [1/3]

taraxa::network::tarcap::PacketHandler::PacketHandler ( const FullNodeConfig conf,
std::shared_ptr< PeersState peers_state,
std::shared_ptr< TimePeriodPacketsStats packets_stats,
const addr_t node_addr,
const std::string &  log_channel_name 
)

◆ ~PacketHandler()

virtual taraxa::network::tarcap::PacketHandler::~PacketHandler ( )
virtualdefault

◆ PacketHandler() [2/3]

taraxa::network::tarcap::PacketHandler::PacketHandler ( const PacketHandler )
default

◆ PacketHandler() [3/3]

taraxa::network::tarcap::PacketHandler::PacketHandler ( PacketHandler &&  )
default

Member Function Documentation

◆ checkPacketRlpIsList()

void taraxa::network::tarcap::PacketHandler::checkPacketRlpIsList ( const threadpool::PacketData packet_data) const
protected

Checks if packet rlp is a list, if not it throws InvalidRlpItemsCountException.

Parameters
packet_data
Exceptions
InvalidRlpItemsCountExceptionexception

◆ disconnect()

void taraxa::network::tarcap::PacketHandler::disconnect ( const dev::p2p::NodeID node_id,
dev::p2p::DisconnectReason  reason 
)
protected

◆ handle_caught_exception()

void taraxa::network::tarcap::PacketHandler::handle_caught_exception ( std::string_view  exception_msg,
const threadpool::PacketData packet_data,
const dev::p2p::NodeID peer,
dev::p2p::DisconnectReason  disconnect_reason = dev::p2p::DisconnectReason::UserReason,
bool  set_peer_as_malicious = false 
)
private

◆ operator=() [1/2]

PacketHandler& taraxa::network::tarcap::PacketHandler::operator= ( const PacketHandler )
delete

◆ operator=() [2/2]

PacketHandler& taraxa::network::tarcap::PacketHandler::operator= ( PacketHandler &&  )
delete

◆ process()

◆ processPacket()

void taraxa::network::tarcap::PacketHandler::processPacket ( const threadpool::PacketData packet_data)

Packet processing function wrapper that logs packet stats and calls process function.

Parameters
packet_data

◆ requestPbftNextVotesAtPeriodRound()

void taraxa::network::tarcap::PacketHandler::requestPbftNextVotesAtPeriodRound ( const dev::p2p::NodeID peerID,
PbftPeriod  pbft_period,
PbftRound  pbft_round 
)

◆ sealAndSend()

bool taraxa::network::tarcap::PacketHandler::sealAndSend ( const dev::p2p::NodeID nodeID,
SubprotocolPacketType  packet_type,
dev::RLPStream &&  rlp 
)
protected

◆ validatePacketRlpFormat()

Member Data Documentation

◆ kConf

const FullNodeConfig& taraxa::network::tarcap::PacketHandler::kConf
protected

◆ packets_stats_

std::shared_ptr<TimePeriodPacketsStats> taraxa::network::tarcap::PacketHandler::packets_stats_
protected

◆ peers_state_

std::shared_ptr<PeersState> taraxa::network::tarcap::PacketHandler::peers_state_ {nullptr}
protected

The documentation for this class was generated from the following files: