proxygen
proxygen::compress::CompressionScheme Class Referenceabstract

#include <CompressionScheme.h>

Inheritance diagram for proxygen::compress::CompressionScheme:
folly::EventBase::LoopCallback proxygen::compress::HPACKScheme proxygen::compress::QMINScheme proxygen::compress::QPACKScheme

Classes

struct  Ack
 

Public Types

using BlockInfo = std::tuple< FrameFlags, bool, std::unique_ptr< folly::IOBuf >, SimStreamingCallback * >
 

Public Member Functions

 CompressionScheme (CompressionSimulator *sim)
 
virtual ~CompressionScheme ()
 
virtual std::unique_ptr< AckgetAck (uint16_t seqn)=0
 
virtual void recvAck (std::unique_ptr< Ack >)=0
 
virtual std::pair< FrameFlags, std::unique_ptr< folly::IOBuf > > encode (bool newPacket, std::vector< compress::Header > allHeaders, SimStats &stats)=0
 
virtual void decode (FrameFlags flags, std::unique_ptr< folly::IOBuf > encodedReq, SimStats &stats, SimStreamingCallback &cb)=0
 
virtual uint32_t getHolBlockCount () const =0
 
void runLoopCallback () noexceptoverride
 
- Public Member Functions inherited from folly::EventBase::LoopCallback
virtual ~LoopCallback ()=default
 
void cancelLoopCallback ()
 
bool isLoopCallbackScheduled () const
 

Public Attributes

std::list< BlockInfoencodedBlocks
 
std::list< BlockInfopacketBlocks
 
size_t index {0}
 
std::chrono::milliseconds prev
 
size_t packetBytes {0}
 
std::chrono::milliseconds decodeDelay
 
std::list< uint16_tpacketIndices
 

Private Attributes

CompressionSimulatorsimulator_
 

Detailed Description

Definition at line 20 of file CompressionScheme.h.

Member Typedef Documentation

Definition at line 67 of file CompressionScheme.h.

Constructor & Destructor Documentation

proxygen::compress::CompressionScheme::CompressionScheme ( CompressionSimulator sim)
inlineexplicit

Definition at line 22 of file CompressionScheme.h.

22  : simulator_(sim) {
23  }
virtual proxygen::compress::CompressionScheme::~CompressionScheme ( )
inlinevirtual

Definition at line 24 of file CompressionScheme.h.

24  {
25  }

Member Function Documentation

virtual void proxygen::compress::CompressionScheme::decode ( FrameFlags  flags,
std::unique_ptr< folly::IOBuf encodedReq,
SimStats stats,
SimStreamingCallback cb 
)
pure virtual
virtual std::pair<FrameFlags, std::unique_ptr<folly::IOBuf> > proxygen::compress::CompressionScheme::encode ( bool  newPacket,
std::vector< compress::Header allHeaders,
SimStats stats 
)
pure virtual
virtual std::unique_ptr<Ack> proxygen::compress::CompressionScheme::getAck ( uint16_t  seqn)
pure virtual
virtual uint32_t proxygen::compress::CompressionScheme::getHolBlockCount ( ) const
pure virtual
virtual void proxygen::compress::CompressionScheme::recvAck ( std::unique_ptr< Ack )
pure virtual
void proxygen::compress::CompressionScheme::runLoopCallback ( )
overridevirtualnoexcept

Implements folly::EventBase::LoopCallback.

Reimplemented in proxygen::compress::QMINScheme.

Definition at line 180 of file CompressionSimulator.cpp.

Referenced by proxygen::compress::CompressionScheme::Ack::~Ack().

180  {
182 }
void flushSchemePackets(CompressionScheme *scheme)

Member Data Documentation

std::chrono::milliseconds proxygen::compress::CompressionScheme::decodeDelay
std::list<BlockInfo> proxygen::compress::CompressionScheme::encodedBlocks
size_t proxygen::compress::CompressionScheme::index {0}
std::list<BlockInfo> proxygen::compress::CompressionScheme::packetBlocks
size_t proxygen::compress::CompressionScheme::packetBytes {0}
std::list<uint16_t> proxygen::compress::CompressionScheme::packetIndices
std::chrono::milliseconds proxygen::compress::CompressionScheme::prev
CompressionSimulator* proxygen::compress::CompressionScheme::simulator_
private

Definition at line 84 of file CompressionScheme.h.


The documentation for this class was generated from the following files: