TARAXA
Loading...
Searching...
No Matches
transaction_packet_handler.hpp
Go to the documentation of this file.
1#pragma once
2
6
7namespace taraxa {
8class TransactionManager;
9enum class TransactionStatus;
10} // namespace taraxa
11
13
15 public:
16 TransactionPacketHandler(const FullNodeConfig& conf, std::shared_ptr<PeersState> peers_state,
17 std::shared_ptr<TimePeriodPacketsStats> packets_stats,
18 std::shared_ptr<TransactionManager> trx_mgr, const std::string& logs_prefix = "");
19
27 void sendTransactions(std::shared_ptr<TaraxaPeer> peer,
28 std::pair<SharedTransactions, std::vector<trx_hash_t>>&& transactions) override;
29
30 // Packet type that is processed by this handler
32
33 private:
34 virtual void process(const threadpool::PacketData& packet_data, const std::shared_ptr<TaraxaPeer>& peer) override;
35
36 protected:
37 std::shared_ptr<TransactionManager> trx_mgr_;
38
39 std::atomic<uint64_t> received_trx_count_{0};
40 std::atomic<uint64_t> unique_received_trx_count_{0};
41};
42
43} // namespace taraxa::network::tarcap
Definition transaction_packet_handler.hpp:8
Definition transaction_packet_handler.hpp:14
void sendTransactions(std::shared_ptr< TaraxaPeer > peer, std::pair< SharedTransactions, std::vector< trx_hash_t > > &&transactions) override
Send transactions.
Definition transaction_packet_handler.cpp:88
virtual void process(const threadpool::PacketData &packet_data, const std::shared_ptr< TaraxaPeer > &peer) override
Main packet processing function.
Definition transaction_packet_handler.cpp:16
std::shared_ptr< TransactionManager > trx_mgr_
Definition transaction_packet_handler.hpp:37
static constexpr SubprotocolPacketType kPacketType_
Definition transaction_packet_handler.hpp:31
std::atomic< uint64_t > unique_received_trx_count_
Definition transaction_packet_handler.hpp:40
std::atomic< uint64_t > received_trx_count_
Definition transaction_packet_handler.hpp:39
Definition packet_data.hpp:12
TransactionStatus
TransactionStatus enum class defines current transaction status.
Definition transaction_manager.hpp:23
Definition vote_manager.hpp:24
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition packet_types.hpp:12
@ kTransactionPacket
Definition packet_types.hpp:24
Definition app.hpp:16
std::vector< SharedTransaction > SharedTransactions
Definition transaction.hpp:86
Definition config.hpp:41