TARAXA
Loading...
Searching...
No Matches
packet_data.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <json/value.h>
4#include <libp2p/Common.h>
5
6#include <chrono>
7
9
11
13 public:
14 using PacketId = uint64_t;
15 enum PacketPriority : size_t { High = 0, Mid, Low, Count };
16
17 PacketData(SubprotocolPacketType type, const dev::p2p::NodeID& from_node_id, std::vector<unsigned char>&& bytes);
18 ~PacketData() = default;
19 PacketData(const PacketData&) = default;
20 PacketData(PacketData&&) = default;
21 PacketData& operator=(const PacketData&) = default;
23
27 Json::Value getPacketDataJson() const;
28
29 private:
35
36 // Packet bytes had to be copied here as dev::RLP does not own vector of bytes, it only "points to" it
37 std::vector<unsigned char> rlp_bytes_;
38
39 public:
40 PacketId id_{0}; // Unique packet id (counter)
41 std::chrono::steady_clock::time_point receive_time_;
43 // TODO: might not need anymore ???
44 std::string type_str_;
48};
49
50} // namespace taraxa::network::threadpool
Definition RLP.h:56
Definition packet_data.hpp:12
std::vector< unsigned char > rlp_bytes_
Definition packet_data.hpp:37
uint64_t PacketId
Definition packet_data.hpp:14
PacketPriority
Definition packet_data.hpp:15
@ Count
Definition packet_data.hpp:15
@ Low
Definition packet_data.hpp:15
@ High
Definition packet_data.hpp:15
@ Mid
Definition packet_data.hpp:15
dev::RLP rlp_
Definition packet_data.hpp:47
SubprotocolPacketType type_
Definition packet_data.hpp:42
PacketData & operator=(const PacketData &)=default
dev::p2p::NodeID from_node_id_
Definition packet_data.hpp:46
std::string type_str_
Definition packet_data.hpp:44
static PacketPriority getPacketPriority(SubprotocolPacketType packet_type)
Definition packet_data.cpp:19
PacketData & operator=(PacketData &&)=default
Json::Value getPacketDataJson() const
Definition packet_data.cpp:33
PacketId id_
Definition packet_data.hpp:40
std::chrono::steady_clock::time_point receive_time_
Definition packet_data.hpp:41
PacketPriority priority_
Definition packet_data.hpp:45
PacketData(const PacketData &)=default
Definition node_stats.hpp:18
SubprotocolPacketType
SubprotocolPacketType is used in networking layer to differentiate packet types.
Definition packet_types.hpp:12
std::vector< byte > bytes
Definition types.hpp:53