18 #include <hicn/transport/errors/errors.h>
19 #include <hicn/transport/interfaces/callbacks.h>
20 #include <hicn/transport/utils/literals.h>
21 #include <implementation/socket_consumer.h>
22 #include <protocols/indexer.h>
23 #include <protocols/reassembly.h>
36 class TransportProtocol;
43 final_suffix_(Indexer::invalid_index),
45 next_download_suffix_(0),
46 next_reassembly_suffix_(0) {}
51 :
Indexer(std::forward<Indexer>(other)),
52 final_suffix_(other.final_suffix_),
53 first_suffix_(other.first_suffix_),
54 next_download_suffix_(other.next_download_suffix_),
55 next_reassembly_suffix_(other.next_reassembly_suffix_) {}
60 final_suffix_ = Indexer::invalid_index;
61 next_download_suffix_ = first_suffix_;
62 next_reassembly_suffix_ = first_suffix_;
66 return next_download_suffix_ <= final_suffix_ ? next_download_suffix_
67 : Indexer::invalid_index;
70 virtual uint32_t getNextSuffix()
override {
71 return next_download_suffix_ <= final_suffix_ ? next_download_suffix_++
72 : Indexer::invalid_index;
76 first_suffix_ = suffix;
79 uint32_t getFirstSuffix()
override {
return first_suffix_; }
82 next_download_suffix_ = index;
83 return next_download_suffix_;
90 return next_reassembly_suffix_ <= final_suffix_ ? next_reassembly_suffix_++
91 : Indexer::invalid_index;
95 return final_suffix_ != Indexer::invalid_index;
98 virtual uint32_t getFinalSuffix()
override {
return final_suffix_; }
100 void enableFec(fec::FECType fec_type)
override {}
102 void disableFec()
override {}
105 virtual uint32_t getNFec()
override {
return 0; }
109 bool reassembly)
override;
112 uint32_t final_suffix_;
113 uint32_t first_suffix_;
114 uint32_t next_download_suffix_;
115 uint32_t next_reassembly_suffix_;