TARAXA
|
Packet handler base class that consists of shared state and some commonly used functions. More...
#include <packet_handler.hpp>
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 | |
PacketHandler & | operator= (const PacketHandler &)=delete |
PacketHandler & | operator= (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 FullNodeConfig & | kConf |
std::shared_ptr< PeersState > | peers_state_ {nullptr} |
std::shared_ptr< TimePeriodPacketsStats > | packets_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... | |
Packet handler base class that consists of shared state and some commonly used functions.
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 | ||
) |
|
virtualdefault |
|
default |
|
default |
|
protected |
Checks if packet rlp is a list, if not it throws InvalidRlpItemsCountException.
packet_data |
InvalidRlpItemsCountException | exception |
|
protected |
|
private |
|
delete |
|
delete |
|
privatepure virtual |
Main packet processing function.
Implemented in taraxa::network::tarcap::v3::PbftSyncPacketHandler, taraxa::network::tarcap::v3::GetPbftSyncPacketHandler, taraxa::network::tarcap::VotesBundlePacketHandler, taraxa::network::tarcap::VotePacketHandler, taraxa::network::tarcap::TransactionPacketHandler, taraxa::network::tarcap::StatusPacketHandler, taraxa::network::tarcap::PillarVotesBundlePacketHandler, taraxa::network::tarcap::PillarVotePacketHandler, taraxa::network::tarcap::PbftSyncPacketHandler, taraxa::network::tarcap::GetPillarVotesBundlePacketHandler, taraxa::network::tarcap::GetPbftSyncPacketHandler, taraxa::network::tarcap::GetNextVotesBundlePacketHandler, taraxa::network::tarcap::GetDagSyncPacketHandler, taraxa::network::tarcap::DagSyncPacketHandler, and taraxa::network::tarcap::DagBlockPacketHandler.
void taraxa::network::tarcap::PacketHandler::processPacket | ( | const threadpool::PacketData & | packet_data | ) |
Packet processing function wrapper that logs packet stats and calls process function.
packet_data |
void taraxa::network::tarcap::PacketHandler::requestPbftNextVotesAtPeriodRound | ( | const dev::p2p::NodeID & | peerID, |
PbftPeriod | pbft_period, | ||
PbftRound | pbft_round | ||
) |
|
protected |
|
privatepure virtual |
Validates packet rlp format - items count.
InvalidRlpItemsCountException | exception |
Implemented in taraxa::network::tarcap::v3::PbftSyncPacketHandler, taraxa::network::tarcap::v3::GetPbftSyncPacketHandler, taraxa::network::tarcap::VotesBundlePacketHandler, taraxa::network::tarcap::VotePacketHandler, taraxa::network::tarcap::TransactionPacketHandler, taraxa::network::tarcap::StatusPacketHandler, taraxa::network::tarcap::PillarVotesBundlePacketHandler, taraxa::network::tarcap::PillarVotePacketHandler, taraxa::network::tarcap::PbftSyncPacketHandler, taraxa::network::tarcap::GetPillarVotesBundlePacketHandler, taraxa::network::tarcap::GetPbftSyncPacketHandler, taraxa::network::tarcap::GetNextVotesBundlePacketHandler, taraxa::network::tarcap::GetDagSyncPacketHandler, taraxa::network::tarcap::DagSyncPacketHandler, and taraxa::network::tarcap::DagBlockPacketHandler.
|
protected |
|
protected |
|
protected |