18 #include <unordered_map> 21 namespace proxygen {
namespace compress {
39 std::chrono::milliseconds encodeDelay);
41 std::unique_ptr<CompressionScheme>
makeScheme();
42 std::pair<FrameFlags, std::unique_ptr<folly::IOBuf>>
encode(
45 std::list<CompressionScheme::BlockInfo>& blocks);
48 std::unique_ptr<folly::IOBuf> encodedReq,
52 std::unique_ptr<CompressionScheme::Ack> ack);
54 std::unique_ptr<CompressionScheme::Ack> ack);
57 std::chrono::milliseconds
rtt();
69 std::unordered_map<std::string, std::unique_ptr<CompressionScheme>>
domains_;
72 static_cast<folly::Random::DefaultGenerator::result_type
>(params_.
seed)};
std::vector< SimStreamingCallback > callbacks_
std::unique_ptr< CompressionScheme > makeScheme()
bool readInputFromFileAndSchedule(const std::string &filename)
void decodePacket(CompressionScheme *scheme, std::list< CompressionScheme::BlockInfo > &blocks)
std::chrono::milliseconds one_half_rtt()
CompressionSimulator(SimParams p)
std::chrono::milliseconds rtt()
std::unordered_map< std::string, std::unique_ptr< CompressionScheme > > domains_
folly::EventBase eventBase_
void setupRequest(uint16_t seqn, HTTPMessage &&msg, std::chrono::milliseconds encodeDelay)
std::chrono::milliseconds rxmitDelay()
folly::Random::DefaultGenerator rng_
void flushSchemePackets(CompressionScheme *scheme)
void scheduleEvent(folly::Function< void()> f, std::chrono::milliseconds ms)
void flushRequests(CompressionScheme *scheme)
std::mt19937 DefaultGenerator
CompressionScheme * getScheme(folly::StringPiece host)
std::chrono::milliseconds deliveryDelay()
void recvAck(CompressionScheme *scheme, std::unique_ptr< CompressionScheme::Ack > ack)
void sendAck(CompressionScheme *scheme, std::unique_ptr< CompressionScheme::Ack > ack)
void decode(CompressionScheme *scheme, FrameFlags flags, std::unique_ptr< folly::IOBuf > encodedReq, SimStreamingCallback &cb)
std::vector< proxygen::HTTPMessage > requests_
std::pair< FrameFlags, std::unique_ptr< folly::IOBuf > > encode(CompressionScheme *scheme, bool newPacket, uint16_t seqn)
void flushPacket(CompressionScheme *scheme)
std::chrono::milliseconds extraDelay()