TARAXA
Loading...
Searching...
No Matches
dag_block_packet_handler.hpp
Go to the documentation of this file.
1#pragma once
2
5
6namespace taraxa {
7class TransactionManager;
8} // namespace taraxa
9
11
13 public:
14 DagBlockPacketHandler(const FullNodeConfig &conf, std::shared_ptr<PeersState> peers_state,
15 std::shared_ptr<TimePeriodPacketsStats> packets_stats,
16 std::shared_ptr<PbftSyncingState> pbft_syncing_state, std::shared_ptr<PbftChain> pbft_chain,
17 std::shared_ptr<PbftManager> pbft_mgr, std::shared_ptr<DagManager> dag_mgr,
18 std::shared_ptr<TransactionManager> trx_mgr, std::shared_ptr<DbStorage> db,
19 const std::string &logs_prefix = "");
20
21 void sendBlockWithTransactions(const std::shared_ptr<TaraxaPeer> &peer, const std::shared_ptr<DagBlock> &block,
22 SharedTransactions &&trxs) override;
23
24 void onNewBlockReceived(std::shared_ptr<DagBlock> &&block, const std::shared_ptr<TaraxaPeer> &peer = nullptr,
25 const std::unordered_map<trx_hash_t, std::shared_ptr<Transaction>> &trxs = {});
26
27 // Packet type that is processed by this handler
29
30 private:
31 virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr<TaraxaPeer> &peer) override;
32
33 protected:
34 std::shared_ptr<TransactionManager> trx_mgr_{nullptr};
35};
36
37} // namespace taraxa::network::tarcap
Definition dag_block_packet_handler.hpp:12
void onNewBlockReceived(std::shared_ptr< DagBlock > &&block, const std::shared_ptr< TaraxaPeer > &peer=nullptr, const std::unordered_map< trx_hash_t, std::shared_ptr< Transaction > > &trxs={})
Definition dag_block_packet_handler.cpp:69
std::shared_ptr< TransactionManager > trx_mgr_
Definition dag_block_packet_handler.hpp:34
void sendBlockWithTransactions(const std::shared_ptr< TaraxaPeer > &peer, const std::shared_ptr< DagBlock > &block, SharedTransactions &&trxs) override
Definition dag_block_packet_handler.cpp:53
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override
Main packet processing function.
Definition dag_block_packet_handler.cpp:22
static constexpr SubprotocolPacketType kPacketType_
Definition dag_block_packet_handler.hpp:28
Definition dag_block_packet_handler.hpp:7
Definition packet_data.hpp:12
Definition vote_manager.hpp:24
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition packet_types.hpp:12
@ kDagBlockPacket
Definition packet_types.hpp:21
Definition app.hpp:16
std::vector< SharedTransaction > SharedTransactions
Definition transaction.hpp:86
Definition config.hpp:41