18 #include <hicn/transport/core/name.h>
19 #include <hicn/transport/core/packet.h>
20 #include <hicn/transport/utils/shared_ptr_utils.h>
28 const uint32_t MAX_AGGREGATED_INTEREST = 128;
33 struct InterestManifestHeader {
41 using Ptr = std::shared_ptr<Interest>;
43 Interest(Packet::Format format = HF_INET6_TCP,
44 std::size_t additional_header_size = 0);
46 Interest(
const Name &interest_name, Packet::Format format = HF_INET6_TCP,
47 std::size_t additional_header_size = 0);
51 template <
typename... Args>
52 Interest(CopyBufferOp op, Args &&... args)
53 :
Packet(op, std::forward<Args>(args)...) {
54 if (hicn_interest_get_name(format_, packet_start_,
55 name_.getStructReference()) < 0) {
60 template <
typename... Args>
61 Interest(WrapBufferOp op, Args &&... args)
62 :
Packet(op, std::forward<Args>(args)...) {
63 if (hicn_interest_get_name(format_, packet_start_,
64 name_.getStructReference()) < 0) {
69 template <
typename... Args>
70 Interest(CreateOp op, Args &&... args)
71 :
Packet(op, std::forward<Args>(args)...) {}
84 const Name &getName()
const override;
86 Name &getWritableName()
override;
88 void setName(
const Name &name)
override;
90 void setLocator(
const ip_address_t &ip_address)
override;
94 void setLifetime(uint32_t lifetime)
override;
96 uint32_t getLifetime()
const override;
100 void appendSuffix(std::uint32_t suffix);
102 void encodeSuffixes();
104 uint32_t *firstSuffix();
106 uint32_t numberOfSuffixes();
108 auto shared_from_this() {
return utils::shared_from(
this); }
111 void resetForHash()
override;
112 std::set<uint32_t> suffix_set_;