18 #include <hicn/transport/auth/common.h>
19 #include <implementation/socket.h>
20 #include <protocols/incremental_indexer_bytestream.h>
21 #include <utils/suffix_strategy.h>
29 static constexpr
double alpha = 0.3;
32 using SuffixQueue = std::queue<uint32_t>;
33 using InterestContentPair =
34 std::tuple<core::Interest::Ptr, core::ContentObject::Ptr, bool>;
41 suffix_strategy_(utils::SuffixStrategyFactory::getSuffixStrategy(
42 core::NextSegmentCalculationStrategy::INCREMENTAL,
43 next_download_suffix_, 0)) {
44 for (uint32_t i = first_suffix_; i < next_download_suffix_; i++) {
45 suffix_queue_.push(i);
51 void reset()
override;
55 bool reassembly)
override;
59 uint32_t getNextSuffix()
override;
65 uint32_t getFinalSuffix()
override;
68 std::unique_ptr<utils::SuffixStrategy> suffix_strategy_;
69 SuffixQueue suffix_queue_;
72 auth::Verifier::SuffixMap suffix_map_;
73 std::unordered_map<auth::Suffix, InterestContentPair> unverified_segments_;
80 std::unique_ptr<ContentObjectManifest> manifest,
87 auth::VerificationPolicy policy);