20template <
class PacketType>
22 return util::rlp_dec<PacketType>(packet_rlp);
25template <
class PacketType>
36 std::shared_ptr<TimePeriodPacketsStats> packets_stats,
const std::string& log_channel_name);
56 bool set_peer_as_malicious =
false);
Base Packet handler base class that consists processPacket function.
Definition base_packet_handler.hpp:14
Packet handler base class that consists of shared state and some commonly used functions.
Definition packet_handler.hpp:33
PacketHandler(PacketHandler &&)=default
const FullNodeConfig & kConf
Definition packet_handler.hpp:69
std::shared_ptr< TimePeriodPacketsStats > packets_stats_
Definition packet_handler.hpp:74
void disconnect(const dev::p2p::NodeID &node_id, dev::p2p::DisconnectReason reason)
Definition packet_handler.cpp:114
PacketHandler(const PacketHandler &)=default
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)
Definition packet_handler.cpp:67
logger::Logger logger_
Definition packet_handler.hpp:76
bool sealAndSend(const dev::p2p::NodeID &node_id, SubprotocolPacketType packet_type, dev::bytes &&rlp_bytes)
Definition packet_handler.cpp:80
std::shared_ptr< PeersState > peers_state_
Definition packet_handler.hpp:71
virtual ~PacketHandler()=default
void processPacket(const threadpool::PacketData &packet_data) override
Packet processing function wrapper that logs packet stats and calls process function.
Definition packet_handler.cpp:14
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer)=0
Main packet processing function.
PacketHandler & operator=(const PacketHandler &)=delete
PacketHandler & operator=(PacketHandler &&)=delete
Definition packet_data.hpp:12
DisconnectReason
Definition Common.h:73
@ UserReason
Definition Common.h:86
std::vector<::byte > bytes
Definition Common.h:46
std::shared_ptr< spdlog::logger > Logger
Definition logging.hpp:12
Definition vote_manager.hpp:24
dev::bytes encodePacketRlp(PacketType packet)
Definition packet_handler.hpp:26
PacketType decodePacketRlp(const dev::RLP &packet_rlp)
Definition packet_handler.hpp:21
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition packet_types.hpp:12
dev::bytes const & rlp_enc(RLPEncoderRef encoder_to_reuse, T const &obj)
Definition encoding_rlp.hpp:193