16 #include <hicn/transport/core/prefix.h>
17 #include <hicn/transport/interfaces/publication_options.h>
18 #include <hicn/transport/interfaces/socket_producer.h>
19 #include <hicn/transport/utils/spinlock.h>
27 #include <hicn/http-proxy/http_session.h>
33 using SegmentProductionPair = std::pair<uint32_t, bool>;
34 using ResponseInfoMap = std::unordered_map<core::Name, SegmentProductionPair>;
35 using RequestQueue = std::queue<interface::PublicationOptions>;
39 asio::io_service& io_service,
const std::string& prefix,
40 const std::string& first_ipv6_word,
const std::string& origin_address,
41 const std::string& origin_port,
const std::string& cache_size,
42 const std::string& mtu,
const std::string& content_lifetime,
46 const std::string& prefix,
const std::string& first_ipv6_word,
47 const std::string& origin_address,
const std::string& origin_port,
48 const std::string& cache_size,
const std::string& mtu,
49 const std::string& content_lifetime,
bool manifest)
51 origin_address, origin_port, cache_size, mtu,
52 content_lifetime, manifest) {
53 external_io_service_ =
false;
67 void publishContent(
const uint8_t* data, std::size_t size,
68 bool is_last =
true,
bool headers =
false);
70 void manageIncomingInterest(
core::Name& name, core::Packet::MemBufPtr& packet,
74 asio::io_service& io_service_;
75 asio::io_service internal_io_service_;
76 bool external_io_service_;
79 std::string ip_address_;
84 uint64_t request_counter_;
90 unsigned long default_content_lifetime_;
94 ResponseInfoMap chunk_number_map_;
95 RequestQueue response_name_queue_;