TARAXA
taraxa::network::tarcap::ExtSyncingPacketHandler Class Reference

ExtSyncingPacketHandler is extended abstract PacketHandler with added functions that are used in packet handlers that need to interact with syncing process in some way. More...

#include <ext_syncing_packet_handler.hpp>

Collaboration diagram for taraxa::network::tarcap::ExtSyncingPacketHandler:

Public Member Functions

 ExtSyncingPacketHandler (const FullNodeConfig &conf, std::shared_ptr< PeersState > peers_state, std::shared_ptr< TimePeriodPacketsStats > packets_stats, std::shared_ptr< PbftSyncingState > pbft_syncing_state, std::shared_ptr< PbftChain > pbft_chain, std::shared_ptr< PbftManager > pbft_mgr, std::shared_ptr< DagManager > dag_mgr, std::shared_ptr< DbStorage > db, const addr_t &node_addr, const std::string &log_channel_name)
 
virtual ~ExtSyncingPacketHandler ()=default
 
ExtSyncingPacketHandleroperator= (const ExtSyncingPacketHandler &)=delete
 
ExtSyncingPacketHandleroperator= (ExtSyncingPacketHandler &&)=delete
 
void startSyncingPbft ()
 Start syncing pbft if needed. More...
 
bool syncPeerPbft (PbftPeriod request_period)
 Send sync request to the current syncing peer with specified request_period. More...
 
void requestDagBlocks (const dev::p2p::NodeID &_nodeID, const std::unordered_set< blk_hash_t > &blocks, PbftPeriod period)
 
void requestPendingDagBlocks (std::shared_ptr< TaraxaPeer > peer=nullptr)
 
std::shared_ptr< TaraxaPeergetMaxChainPeer (std::function< bool(const std::shared_ptr< TaraxaPeer > &)> filter_func=[](const std::shared_ptr< TaraxaPeer > &) { return true;})
 
- Public Member Functions inherited from 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)
 
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 Attributes

std::shared_ptr< PbftSyncingStatepbft_syncing_state_ {nullptr}
 
std::shared_ptr< PbftChainpbft_chain_ {nullptr}
 
std::shared_ptr< PbftManagerpbft_mgr_ {nullptr}
 
std::shared_ptr< DagManagerdag_mgr_ {nullptr}
 
std::shared_ptr< DbStoragedb_ {nullptr}
 
- Protected Attributes inherited from taraxa::network::tarcap::PacketHandler
const FullNodeConfigkConf
 
std::shared_ptr< PeersStatepeers_state_ {nullptr}
 
std::shared_ptr< TimePeriodPacketsStatspackets_stats_
 

Additional Inherited Members

- Protected Member Functions inherited from taraxa::network::tarcap::PacketHandler
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)
 

Detailed Description

ExtSyncingPacketHandler is extended abstract PacketHandler with added functions that are used in packet handlers that need to interact with syncing process in some way.

Constructor & Destructor Documentation

◆ ExtSyncingPacketHandler()

taraxa::network::tarcap::ExtSyncingPacketHandler::ExtSyncingPacketHandler ( const FullNodeConfig conf,
std::shared_ptr< PeersState peers_state,
std::shared_ptr< TimePeriodPacketsStats packets_stats,
std::shared_ptr< PbftSyncingState pbft_syncing_state,
std::shared_ptr< PbftChain pbft_chain,
std::shared_ptr< PbftManager pbft_mgr,
std::shared_ptr< DagManager dag_mgr,
std::shared_ptr< DbStorage db,
const addr_t node_addr,
const std::string &  log_channel_name 
)

◆ ~ExtSyncingPacketHandler()

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

Member Function Documentation

◆ getMaxChainPeer()

std::shared_ptr< TaraxaPeer > taraxa::network::tarcap::ExtSyncingPacketHandler::getMaxChainPeer ( std::function< bool(const std::shared_ptr< TaraxaPeer > &)>  filter_func = [](const std::shared_ptr<TaraxaPeer> &) { return true; })

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ requestDagBlocks()

void taraxa::network::tarcap::ExtSyncingPacketHandler::requestDagBlocks ( const dev::p2p::NodeID _nodeID,
const std::unordered_set< blk_hash_t > &  blocks,
PbftPeriod  period 
)

◆ requestPendingDagBlocks()

void taraxa::network::tarcap::ExtSyncingPacketHandler::requestPendingDagBlocks ( std::shared_ptr< TaraxaPeer peer = nullptr)

◆ startSyncingPbft()

void taraxa::network::tarcap::ExtSyncingPacketHandler::startSyncingPbft ( )

Start syncing pbft if needed.

◆ syncPeerPbft()

bool taraxa::network::tarcap::ExtSyncingPacketHandler::syncPeerPbft ( PbftPeriod  request_period)

Send sync request to the current syncing peer with specified request_period.

Parameters
request_period
Returns
true if sync request was sent, otherwise false

Member Data Documentation

◆ dag_mgr_

std::shared_ptr<DagManager> taraxa::network::tarcap::ExtSyncingPacketHandler::dag_mgr_ {nullptr}
protected

◆ db_

std::shared_ptr<DbStorage> taraxa::network::tarcap::ExtSyncingPacketHandler::db_ {nullptr}
protected

◆ pbft_chain_

std::shared_ptr<PbftChain> taraxa::network::tarcap::ExtSyncingPacketHandler::pbft_chain_ {nullptr}
protected

◆ pbft_mgr_

std::shared_ptr<PbftManager> taraxa::network::tarcap::ExtSyncingPacketHandler::pbft_mgr_ {nullptr}
protected

◆ pbft_syncing_state_

std::shared_ptr<PbftSyncingState> taraxa::network::tarcap::ExtSyncingPacketHandler::pbft_syncing_state_ {nullptr}
protected

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