#include <Client.h>

Inheritance diagram for Client:
Collaboration diagram for Client:

Public Types

typedef CbcPointer< AsyncJobPointer
 
typedef CbcPointer< BodyProducerPointer
 
typedef CbcPointer< BodyConsumerPointer
 

Public Member Functions

 Client (FwdState *)
 
 ~Client () override
 
virtual const Comm::ConnectionPointerdataConnection () const =0
 
void noteMoreBodyDataAvailable (BodyPipe::Pointer) override
 
void noteBodyProductionEnded (BodyPipe::Pointer) override
 
void noteBodyProducerAborted (BodyPipe::Pointer) override
 
virtual void maybeReadVirginBody ()=0
 read response data from the network More...
 
virtual void abortAll (const char *reason)=0
 abnormal transaction termination; reason is for debugging only More...
 
virtual bool abortOnData (const char *reason)
 
virtual HttpRequestPointer originalRequest ()
 a hack to reach HttpStateData::orignal_request More...
 
void noteAdaptationAnswer (const Adaptation::Answer &answer) override
 
void noteAdaptationAclCheckDone (Adaptation::ServiceGroupPointer group) override
 
void noteMoreBodySpaceAvailable (BodyPipe::Pointer) override
 
void noteBodyConsumerAborted (BodyPipe::Pointer) override
 
virtual bool getMoreRequestBody (MemBuf &buf)
 either fill buf with available [encoded] request body bytes or return false More...
 
virtual void processReplyBody ()=0
 
void swanSong () override
 
bool doneAll () const override
 whether positive goal has been reached More...
 
void serverComplete ()
 
void markParsedVirginReplyAsWhole (const char *reasonWeAreSure)
 
bool canBeCalled (AsyncCall &call) const
 whether we can be called More...
 
void callStart (AsyncCall &call)
 
virtual void callEnd ()
 called right after the called job method More...
 
virtual void callException (const std::exception &e)
 called when the job throws during an async call More...
 
void handleStopRequest ()
 process external request to terminate now (i.e. during this async call) More...
 
virtual void * toCbdata ()=0
 

Static Public Member Functions

static void Start (const Pointer &job)
 
static void RegisterWithCacheManager ()
 

Public Attributes

StoreEntryentry = nullptr
 
FwdState::Pointer fwd
 
HttpRequestPointer request
 
const InstanceId< AsyncJobid
 job identifier More...
 

Protected Member Functions

virtual void haveParsedReplyHeaders ()
 called when we have final (possibly adapted) reply headers; kids extend More...
 
virtual void completeForwarding ()
 
bool startRequestBodyFlow ()
 
void handleMoreRequestBodyAvailable ()
 
void handleRequestBodyProductionEnded ()
 
virtual void handleRequestBodyProducerAborted ()=0
 
void sendMoreRequestBody ()
 
virtual void sentRequestBody (const CommIoCbParams &io)=0
 
virtual void doneSendingRequestBody ()=0
 
virtual void closeServer ()=0
 
virtual bool doneWithServer () const =0
 
virtual bool mayReadVirginReplyBody () const =0
 whether we may receive more virgin response body bytes More...
 
virtual void noteDelayAwareReadChance ()=0
 
bool abortOnBadEntry (const char *abortReason)
 Entry-dependent callbacks use this check to quit if the entry went bad. More...
 
bool blockCaching ()
 whether to prevent caching of an otherwise cachable response More...
 
void startAdaptation (const Adaptation::ServiceGroupPointer &group, HttpRequest *cause)
 Initiate an asynchronous adaptation transaction which will call us back. More...
 
void adaptVirginReplyBody (const char *buf, ssize_t len)
 
void cleanAdaptation ()
 
virtual bool doneWithAdaptation () const
 
void handleMoreAdaptedBodyAvailable ()
 
void handleAdaptedBodyProductionEnded ()
 
void handleAdaptedBodyProducerAborted ()
 
void handleAdaptedHeader (Http::Message *msg)
 
void handleAdaptationCompleted ()
 
void handleAdaptationBlocked (const Adaptation::Answer &answer)
 
void handleAdaptationAborted (bool bypassable=false)
 
bool handledEarlyAdaptationAbort ()
 
void resumeBodyStorage ()
 called by StoreEntry when it has more buffer space available More...
 
void checkAdaptationWithBodyCompletion ()
 
const HttpReplyvirginReply () const
 
HttpReplyvirginReply ()
 
HttpReplysetVirginReply (HttpReply *r)
 
HttpReplyfinalReply ()
 
HttpReplysetFinalReply (HttpReply *r)
 
void adaptOrFinalizeReply ()
 
void addVirginReplyBody (const char *buf, ssize_t len)
 
void storeReplyBody (const char *buf, ssize_t len)
 
size_t replyBodySpace (const MemBuf &readBuf, const size_t minSpace) const
 
size_t calcBufferSpaceToReserve (const size_t space, const size_t wantSpace) const
 determine how much space the buffer needs to reserve More...
 
void adjustBodyBytesRead (const int64_t delta)
 initializes bodyBytesRead stats if needed and applies delta More...
 
void delayRead ()
 
CbcPointer< Initiate > initiateAdaptation (Initiate *x)
 < starts freshly created initiate and returns a safe pointer to it More...
 
void clearAdaptation (CbcPointer< Initiate > &x)
 clears the pointer (does not call announceInitiatorAbort) More...
 
void announceInitiatorAbort (CbcPointer< Initiate > &x)
 inform the transaction about abnormal termination and clear the pointer More...
 
bool initiated (const CbcPointer< AsyncJob > &job) const
 Must(initiated(initiate)) instead of Must(initiate.set()), for clarity. More...
 
void deleteThis (const char *aReason)
 
void mustStop (const char *aReason)
 
bool done () const
 the job is destroyed in callEnd() when done() More...
 
virtual void start ()
 called by AsyncStart; do not call directly More...
 
virtual const char * status () const
 internal cleanup; do not call directly More...
 
void stopProducingFor (RefCount< BodyPipe > &, bool atEof)
 
void stopConsumingFrom (RefCount< BodyPipe > &)
 

Static Protected Member Functions

static void ReportAllJobs (StoreEntry *)
 writes a cache manager report about all jobs existing in this worker More...
 

Protected Attributes

int64_t currentOffset = 0
 
MemBufresponseBodyBuffer = nullptr
 
BodyPipe::Pointer requestBodySource
 
AsyncCall::Pointer requestSender
 
BodyPipe::Pointer virginBodyDestination
 
CbcPointer< Adaptation::InitiateadaptedHeadSource
 
BodyPipe::Pointer adaptedBodySource
 
bool adaptationAccessCheckPending = false
 
bool startedAdaptation = false
 
bool receivedWholeAdaptedReply = false
 
bool adaptedReplyAborted = false
 handleAdaptedBodyProducerAborted() has been called More...
 
bool receivedWholeRequestBody = false
 handleRequestBodyProductionEnded called More...
 
bool waitingForDelayAwareReadChance = false
 whether we are waiting for MemObject::delayRead() to call us back More...
 
const char * markedParsedVirginReplyAsWhole = nullptr
 
const char * doneWithFwd = nullptr
 
const char * stopReason
 reason for forcing done() to be true More...
 
const char * typeName
 kid (leaf) class name, for debugging More...
 
AsyncCall::Pointer inCall
 the asynchronous call being handled, if any More...
 
bool started_ = false
 Start() has finished successfully. More...
 
bool swanSang_ = false
 swanSong() was called More...
 

Private Member Functions

void serverComplete2 ()
 
void sendBodyIsTooLargeError ()
 
void maybePurgeOthers ()
 
virtual void finalizedInCbdataChild ()=0
 hack: ensure CBDATA_CHILD() after a toCbdata()-defining CBDATA_INTERMEDIATE() More...
 

Private Attributes

bool completed = false
 
HttpReplytheVirginReply = nullptr
 
HttpReplytheFinalReply = nullptr
 

Detailed Description

Client is a common base for classes such as HttpStateData and FtpStateData. All such classes must be able to consume request bodies from a BodyPipe or ICAP producer, adapt virgin responses using ICAP, and provide a consumer with responses.

Definition at line 29 of file Client.h.

Member Typedef Documentation

◆ Pointer [1/3]

Definition at line 25 of file BodyPipe.h.

◆ Pointer [2/3]

Definition at line 34 of file AsyncJob.h.

◆ Pointer [3/3]

Definition at line 45 of file BodyPipe.h.

Constructor & Destructor Documentation

◆ Client()

Client::Client ( FwdState theFwdState)

Definition at line 38 of file Client.cc.

References entry, FwdState::entry, fwd, and StoreEntry::lock().

◆ ~Client()

Member Function Documentation

◆ abortAll()

virtual void Client::abortAll ( const char *  reason)
pure virtual

◆ abortOnBadEntry()

◆ abortOnData()

bool Client::abortOnData ( const char *  reason)
virtual

abnormal data transfer termination

Return values
truethe transaction will be terminated (abortAll called)
falsethe transaction will survive

Reimplemented in Ftp::Relay.

Definition at line 315 of file Client.cc.

References abortAll().

Referenced by abortOnBadEntry(), handleAdaptationBlocked(), sendBodyIsTooLargeError(), and sentRequestBody().

◆ adaptOrFinalizeReply()

◆ adaptVirginReplyBody()

void Client::adaptVirginReplyBody ( const char *  buf,
ssize_t  len 
)
protected

◆ addVirginReplyBody()

void Client::addVirginReplyBody ( const char *  buf,
ssize_t  len 
)
protected

◆ adjustBodyBytesRead()

void Client::adjustBodyBytesRead ( const int64_t  delta)
protected

Definition at line 1027 of file Client.cc.

References HierarchyLogEntry::bodyBytesRead, HttpRequest::hier, Must, and originalRequest().

Referenced by addVirginReplyBody().

◆ announceInitiatorAbort()

void Adaptation::Initiator::announceInitiatorAbort ( CbcPointer< Initiate > &  x)
protectedinherited

Definition at line 38 of file Initiator.cc.

References CallJobHere.

Referenced by cleanAdaptation(), and ClientHttpRequest::~ClientHttpRequest().

◆ blockCaching()

◆ calcBufferSpaceToReserve()

size_t Client::calcBufferSpaceToReserve ( const size_t  space,
const size_t  wantSpace 
) const
protected

◆ callEnd()

void AsyncJob::callEnd ( )
virtualinherited

◆ callException()

◆ callStart()

void AsyncJob::callStart ( AsyncCall call)
inherited

◆ canBeCalled()

bool AsyncJob::canBeCalled ( AsyncCall call) const
inherited

Definition at line 117 of file AsyncJob.cc.

References AsyncCall::cancel(), debugs, and AsyncJob::inCall.

◆ checkAdaptationWithBodyCompletion()

void Client::checkAdaptationWithBodyCompletion ( )
protected

Reacts to adaptedBodySource-related changes. May end adapted body consumption, adaptation as a whole, or forwarding. Safe to call multiple times, including calls made after the end of adaptation.

Definition at line 831 of file Client.cc.

References adaptedBodySource, adaptedReplyAborted, debugs, doneWithAdaptation(), BodyPipe::exhausted(), handleAdaptationCompleted(), receivedWholeAdaptedReply, startedAdaptation, BodyPipe::status(), and BodyConsumer::stopConsumingFrom().

Referenced by handleAdaptedBodyProducerAborted(), handleAdaptedBodyProductionEnded(), handleAdaptedHeader(), and resumeBodyStorage().

◆ cleanAdaptation()

◆ clearAdaptation()

void Adaptation::Initiator::clearAdaptation ( CbcPointer< Initiate > &  x)
protectedinherited

◆ closeServer()

virtual void Client::closeServer ( )
protectedpure virtual

Use this to end communication with the server. The call cancels our closure handler and tells FwdState to forget about the connection.

Implemented in Ftp::Client, and HttpStateData.

Referenced by handleAdaptationCompleted(), serverComplete(), and swanSong().

◆ completeForwarding()

◆ dataConnection()

virtual const Comm::ConnectionPointer& Client::dataConnection ( ) const
pure virtual
Returns
primary or "request data connection"

Implemented in Ftp::Client, and HttpStateData.

Referenced by sendMoreRequestBody().

◆ delayRead()

void Client::delayRead ( )
protected

Defer reading until it is likely to become possible. Eventually, noteDelayAwareReadChance() will be called.

Definition at line 1042 of file Client.cc.

References Assure, asyncCall(), MemObject::delayRead(), entry, StoreEntry::mem(), noteDelayAwareReadChance(), and waitingForDelayAwareReadChance.

Referenced by HttpStateData::readReply().

◆ deleteThis()

void AsyncJob::deleteThis ( const char *  aReason)
protectedinherited

◆ done()

bool AsyncJob::done ( ) const
protectedinherited

◆ doneAll()

bool Client::doneAll ( ) const
overridevirtual

Reimplemented from AsyncJob.

Definition at line 203 of file Client.cc.

References AsyncJob::doneAll(), doneWithAdaptation(), and doneWithServer().

◆ doneSendingRequestBody()

void Client::doneSendingRequestBody ( )
protectedpure virtual

◆ doneWithAdaptation()

bool Client::doneWithAdaptation ( ) const
protectedvirtual

◆ doneWithServer()

virtual bool Client::doneWithServer ( ) const
protectedpure virtual

did we end communication?

Implemented in Ftp::Client, and HttpStateData.

Referenced by doneAll(), serverComplete(), and swanSong().

◆ finalizedInCbdataChild()

virtual void CbdataParent::finalizedInCbdataChild ( )
privatepure virtualinherited

◆ finalReply()

HttpReply * Client::finalReply ( )
protected

Definition at line 129 of file Client.cc.

References assert, and theFinalReply.

Referenced by HttpStateData::haveParsedReplyHeaders(), and HttpStateData::reusableReply().

◆ getMoreRequestBody()

bool Client::getMoreRequestBody ( MemBuf buf)
virtual

Reimplemented in HttpStateData.

Definition at line 442 of file Client.cc.

References BodyPipe::getMoreData(), Must, and requestBodySource.

Referenced by HttpStateData::getMoreRequestBody(), and sendMoreRequestBody().

◆ handleAdaptationAborted()

void Client::handleAdaptationAborted ( bool  bypassable = false)
protected

◆ handleAdaptationBlocked()

◆ handleAdaptationCompleted()

void Client::handleAdaptationCompleted ( )
protected

◆ handleAdaptedBodyProducerAborted()

◆ handleAdaptedBodyProductionEnded()

void Client::handleAdaptedBodyProductionEnded ( )
protected

◆ handleAdaptedHeader()

◆ handledEarlyAdaptationAbort()

bool Client::handledEarlyAdaptationAbort ( )
protected

If the store entry is still empty, fully handles adaptation abort, returning true. Otherwise just updates the request error detail and returns false.

Definition at line 913 of file Client.cc.

References abortAll(), FwdState::al, debugs, HttpRequest::detailError(), FwdState::dontRetry(), entry, ERR_ICAP_FAILURE, FwdState::fail(), fwd, RefCount< C >::getRaw(), StoreEntry::isEmpty(), MakeNamedErrorDetail(), request, and Http::scInternalServerError.

Referenced by handleAdaptationAborted(), and handleAdaptedBodyProducerAborted().

◆ handleMoreAdaptedBodyAvailable()

◆ handleMoreRequestBodyAvailable()

void Client::handleMoreRequestBodyAvailable ( )
protected

Definition at line 323 of file Client.cc.

References debugs, requestSender, and sendMoreRequestBody().

Referenced by noteMoreBodyDataAvailable().

◆ handleRequestBodyProducerAborted()

◆ handleRequestBodyProductionEnded()

void Client::handleRequestBodyProductionEnded ( )
protected

Definition at line 333 of file Client.cc.

References debugs, doneSendingRequestBody(), receivedWholeRequestBody, and requestSender.

Referenced by noteBodyProductionEnded().

◆ handleStopRequest()

void AsyncJob::handleStopRequest ( )
inlineinherited

Definition at line 73 of file AsyncJob.h.

References AsyncJob::mustStop().

◆ haveParsedReplyHeaders()

void Client::haveParsedReplyHeaders ( )
protectedvirtual

◆ initiateAdaptation()

CbcPointer< Adaptation::Initiate > Adaptation::Initiator::initiateAdaptation ( Initiate x)
protectedinherited

◆ initiated()

bool Adaptation::Initiator::initiated ( const CbcPointer< AsyncJob > &  job) const
inlineprotectedinherited

Definition at line 52 of file Initiator.h.

Referenced by startAdaptation(), and ClientHttpRequest::startAdaptation().

◆ markParsedVirginReplyAsWhole()

void Client::markParsedVirginReplyAsWhole ( const char *  reasonWeAreSure)

remember that the received virgin reply was parsed in its entirety, including its body (if any)

Definition at line 158 of file Client.cc.

References assert, debugs, and markedParsedVirginReplyAsWhole.

Referenced by HttpStateData::decodeAndWriteReplyBody(), ftpReadTransferDone(), ftpWriteTransferDone(), and HttpStateData::writeReplyBody().

◆ maybePurgeOthers()

◆ maybeReadVirginBody()

virtual void Client::maybeReadVirginBody ( )
pure virtual

Implemented in Ftp::Client, and HttpStateData.

Referenced by noteMoreBodySpaceAvailable().

◆ mayReadVirginReplyBody()

virtual bool Client::mayReadVirginReplyBody ( ) const
protectedpure virtual

Implemented in Ftp::Gateway, HttpStateData, and Ftp::Relay.

Referenced by handleAdaptationCompleted().

◆ mustStop()

◆ noteAdaptationAclCheckDone()

void Client::noteAdaptationAclCheckDone ( Adaptation::ServiceGroupPointer  group)
overridevirtual

AccessCheck calls this back with a possibly nil service group to signal whether adaptation is needed and where it should start.

Reimplemented from Adaptation::Initiator.

Definition at line 970 of file Client.cc.

References abortOnBadEntry(), adaptationAccessCheckPending, debugs, originalRequest(), processReplyBody(), request, sendBodyIsTooLargeError(), setFinalReply(), startAdaptation(), and virginReply().

◆ noteAdaptationAnswer()

void Client::noteAdaptationAnswer ( const Adaptation::Answer answer)
overridevirtual

◆ noteBodyConsumerAborted()

void Client::noteBodyConsumerAborted ( BodyPipe::Pointer  )
overridevirtual

◆ noteBodyProducerAborted()

void Client::noteBodyProducerAborted ( BodyPipe::Pointer  bp)
overridevirtual

◆ noteBodyProductionEnded()

void Client::noteBodyProductionEnded ( BodyPipe::Pointer  bp)
overridevirtual

◆ noteDelayAwareReadChance()

virtual void Client::noteDelayAwareReadChance ( )
protectedpure virtual

Called when a previously delayed dataConnection() read may be possible.

See also
delayRead()

Implemented in Ftp::Client, and HttpStateData.

Referenced by delayRead().

◆ noteMoreBodyDataAvailable()

void Client::noteMoreBodyDataAvailable ( BodyPipe::Pointer  bp)
overridevirtual

◆ noteMoreBodySpaceAvailable()

void Client::noteMoreBodySpaceAvailable ( BodyPipe::Pointer  )
overridevirtual

◆ originalRequest()

◆ processReplyBody()

virtual void Client::processReplyBody ( )
pure virtual

Implemented in Ftp::Gateway, HttpStateData, and Ftp::Relay.

Referenced by noteAdaptationAclCheckDone().

◆ RegisterWithCacheManager()

void AsyncJob::RegisterWithCacheManager ( )
staticinherited

Definition at line 215 of file AsyncJob.cc.

References Mgr::RegisterAction(), and AsyncJob::ReportAllJobs().

Referenced by mainInitialize().

◆ replyBodySpace()

size_t Client::replyBodySpace ( const MemBuf readBuf,
const size_t  minSpace 
) const
protected

◆ ReportAllJobs()

void AsyncJob::ReportAllJobs ( StoreEntry e)
staticprotectedinherited

Definition at line 198 of file AsyncJob.cc.

References AllJobs().

Referenced by AsyncJob::RegisterWithCacheManager().

◆ resumeBodyStorage()

void Client::resumeBodyStorage ( )
protected

◆ sendBodyIsTooLargeError()

void Client::sendBodyIsTooLargeError ( )
private

◆ sendMoreRequestBody()

◆ sentRequestBody()

◆ serverComplete()

void Client::serverComplete ( )

◆ serverComplete2()

void Client::serverComplete2 ( )
private

Continuation of serverComplete

Definition at line 188 of file Client.cc.

References completeForwarding(), debugs, doneWithAdaptation(), BodyProducer::stopProducingFor(), and virginBodyDestination.

Referenced by noteMoreBodySpaceAvailable(), and serverComplete().

◆ setFinalReply()

◆ setVirginReply()

HttpReply * Client::setVirginReply ( HttpReply r)
protected

◆ start()

◆ Start()

◆ startAdaptation()

◆ startRequestBodyFlow()

bool Client::startRequestBodyFlow ( )
protected

◆ status()

◆ stopConsumingFrom()

◆ stopProducingFor()

void BodyProducer::stopProducingFor ( RefCount< BodyPipe > &  p,
bool  atEof 
)
protectedinherited

◆ storeReplyBody()

void Client::storeReplyBody ( const char *  buf,
ssize_t  len 
)
protected

Definition at line 1070 of file Client.cc.

References currentOffset, entry, and StoreEntry::write().

Referenced by addVirginReplyBody().

◆ swanSong()

◆ toCbdata()

virtual void* CbdataParent::toCbdata ( )
pure virtualinherited

◆ virginReply() [1/2]

HttpReply* Client::virginReply ( )
protected

◆ virginReply() [2/2]

Member Data Documentation

◆ adaptationAccessCheckPending

bool Client::adaptationAccessCheckPending = false
protected

◆ adaptedBodySource

◆ adaptedHeadSource

CbcPointer<Adaptation::Initiate> Client::adaptedHeadSource
protected

to get adapted response headers

Definition at line 189 of file Client.h.

Referenced by cleanAdaptation(), doneWithAdaptation(), noteAdaptationAnswer(), and startAdaptation().

◆ adaptedReplyAborted

bool Client::adaptedReplyAborted = false
protected

◆ completed

bool Client::completed = false
private

serverComplete() has been called

Definition at line 90 of file Client.h.

Referenced by noteMoreBodySpaceAvailable(), and serverComplete().

◆ currentOffset

int64_t Client::currentOffset = 0
protected

◆ doneWithFwd

const char* Client::doneWithFwd = nullptr
protected

whether we should not be talking to FwdState; XXX: clear fwd instead points to a string literal which is used only for debugging

Definition at line 213 of file Client.h.

Referenced by completeForwarding(), HttpStateData::httpStateConnClosed(), HttpStateData::proceedAfter1xx(), and swanSong().

◆ entry

◆ fwd

◆ id

const InstanceId<AsyncJob> AsyncJob::id
inherited

Definition at line 75 of file AsyncJob.h.

◆ inCall

AsyncCall::Pointer AsyncJob::inCall
protectedinherited

◆ markedParsedVirginReplyAsWhole

const char* Client::markedParsedVirginReplyAsWhole = nullptr
protected

markParsedVirginReplyAsWhole() parameter (if that method was called) or nil; points to a string literal which is used only for debugging

Definition at line 209 of file Client.h.

Referenced by completeForwarding(), and markParsedVirginReplyAsWhole().

◆ receivedWholeAdaptedReply

bool Client::receivedWholeAdaptedReply = false
protected

Whether the entire adapted response (including bodyless responses) has been successfully produced. A successful end of body production does not imply that we have consumed all of the produced body bytes.

Definition at line 198 of file Client.h.

Referenced by checkAdaptationWithBodyCompletion(), completeForwarding(), handleAdaptedBodyProducerAborted(), handleAdaptedBodyProductionEnded(), and handleAdaptedHeader().

◆ receivedWholeRequestBody

bool Client::receivedWholeRequestBody = false
protected

◆ request

◆ requestBodySource

◆ requestSender

◆ responseBodyBuffer

MemBuf* Client::responseBodyBuffer = nullptr
protected

◆ started_

bool AsyncJob::started_ = false
protectedinherited

Definition at line 88 of file AsyncJob.h.

Referenced by AsyncJob::callEnd(), AsyncJob::Start(), and AsyncJob::~AsyncJob().

◆ startedAdaptation

bool Client::startedAdaptation = false
protected

◆ stopReason

const char* AsyncJob::stopReason
protectedinherited

◆ swanSang_

bool AsyncJob::swanSang_ = false
protectedinherited

Definition at line 89 of file AsyncJob.h.

Referenced by AsyncJob::callEnd(), and AsyncJob::~AsyncJob().

◆ theFinalReply

HttpReply* Client::theFinalReply = nullptr
private

adapted reply from ICAP or virgin reply

Definition at line 220 of file Client.h.

Referenced by finalReply(), haveParsedReplyHeaders(), maybePurgeOthers(), setFinalReply(), and ~Client().

◆ theVirginReply

HttpReply* Client::theVirginReply = nullptr
private

reply received from the origin server

Definition at line 219 of file Client.h.

Referenced by setVirginReply(), virginReply(), and ~Client().

◆ typeName

◆ virginBodyDestination

◆ waitingForDelayAwareReadChance

bool Client::waitingForDelayAwareReadChance = false
protected

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

 

Introduction

Documentation

Support

Miscellaneous