18 #include <hicn/transport/core/name.h>
19 #include <hicn/transport/core/packet.h>
20 #include <hicn/transport/utils/shared_ptr_utils.h>
31 using Ptr = std::shared_ptr<ContentObject>;
35 std::size_t additional_header_size = 0);
38 std::size_t additional_header_size = 0);
41 std::size_t additional_header_size,
const uint8_t *payload,
42 std::size_t payload_size);
44 template <
typename... Args>
46 :
Packet(op, std::forward<Args>(args)...) {
47 if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
53 template <
typename... Args>
55 :
Packet(op, std::forward<Args>(args)...) {
56 if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
62 template <
typename... Args>
64 :
Packet(op, std::forward<Args>(args)...) {
65 if (hicn_data_get_name(format_, packet_start_, name_.getStructReference()) <
79 const Name &getName()
const override;
81 Name &getWritableName()
override;
83 void setName(
const Name &name)
override;
85 uint32_t getPathLabel()
const;
89 void setLocator(
const ip_address_t &ip_address)
override;
93 void setLifetime(uint32_t lifetime)
override;
95 uint32_t getLifetime()
const override;
97 auto shared_from_this() {
return utils::shared_from(
this); }
100 void resetForHash()
override;