#include <OptXact.h>

Inheritance diagram for Adaptation::Icap::OptXact:
Collaboration diagram for Adaptation::Icap::OptXact:

Public Types

typedef CbcPointer< AsyncJobPointer
 

Public Member Functions

 OptXact (ServiceRep::Pointer &aService)
 
void disableRetries ()
 
void disableRepeats (const char *reason)
 
bool retriable () const
 
bool repeatable () const
 
void noteCommConnected (const CommConnectCbParams &io)
 called when the connection attempt to an ICAP service completes (successfully or not) More...
 
void noteCommWrote (const CommIoCbParams &io)
 
void noteCommRead (const CommIoCbParams &io)
 
void noteCommTimedout (const CommTimeoutCbParams &io)
 
void noteCommClosed (const CommCloseCbParams &io)
 
virtual void callException (const std::exception &e)
 called when the job throws during an async call More...
 
virtual void callEnd ()
 called right after the called job method More...
 
virtual void clearError ()
 clear stored error details, if any; used for retries/repeats More...
 
virtual AccessLogEntry::Pointer masterLogEntry ()
 
void dnsLookupDone (const ipcache_addrs *ia)
 
ServiceRepservice ()
 
void initiator (const CbcPointer< Initiator > &i)
 sets initiator More...
 
bool canBeCalled (AsyncCall &call) const
 whether we can be called More...
 
void callStart (AsyncCall &call)
 
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)
 

Public Attributes

HttpRequesticapRequest
 sent (or at least created) ICAP request More...
 
HttpReply::Pointer icapReply
 received ICAP reply, if any More...
 
int attempts
 the number of times we tried to get to the service, including this time More...
 
const InstanceId< AsyncJobid
 job identifier More...
 

Protected Member Functions

virtual void start ()
 called by AsyncStart; do not call directly More...
 
virtual void startShoveling ()
 starts sending/receiving ICAP messages More...
 
virtual void handleCommWrote (size_t size)
 
virtual void handleCommRead (size_t size)
 
void makeRequest (MemBuf &buf)
 
bool parseResponse ()
 
void startReading ()
 
virtual bool doneReading () const
 
virtual void swanSong ()
 
virtual void noteInitiatorAborted ()
 
void handleSecuredPeer (Security::EncryptorAnswer &answer)
 
virtual void detailError (const ErrorDetailPointer &)
 record error detail if possible More...
 
void openConnection ()
 
void closeConnection ()
 
bool haveConnection () const
 
void scheduleRead ()
 
void scheduleWrite (MemBuf &buf)
 
void updateTimeout ()
 
void cancelRead ()
 
bool parseHttpMsg (Http::Message *msg)
 
bool mayReadMore () const
 
virtual bool doneWriting () const
 
bool doneWithIo () const
 
virtual bool doneAll () const
 whether positive goal has been reached More...
 
virtual const char * status () const
 internal cleanup; do not call directly More...
 
virtual void fillPendingStatus (MemBuf &buf) const
 
virtual void fillDoneStatus (MemBuf &buf) const
 
virtual bool fillVirginHttpHeader (MemBuf &) const
 
void setOutcome (const XactOutcome &xo)
 
void tellQueryAborted (bool final)
 
void sendAnswer (const Answer &answer)
 
void clearInitiator ()
 
void deleteThis (const char *aReason)
 
void mustStop (const char *aReason)
 
bool done () const
 the job is destroyed in callEnd() when done() More...
 

Protected Attributes

Adaptation::Icap::ServiceRep::Pointer theService
 
SBuf readBuf
 
bool commEof
 
bool reuseConnection
 
bool isRetriable
 can retry on persistent connection failures More...
 
bool isRepeatable
 can repeat if no or unsatisfactory response More...
 
bool ignoreLastWrite
 
bool waitingForDns
 expecting a ipcache_nbgethostbyname() callback More...
 
AsyncCall::Pointer reader
 
AsyncCall::Pointer writer
 
AccessLogEntry::Pointer alep
 icap.log entry More...
 
AccessLogEntryal
 short for *alep More...
 
timeval icap_tr_start
 
timeval icap_tio_start
 
timeval icap_tio_finish
 
CbcPointer< InitiatortheInitiator
 
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

 CBDATA_CLASS (OptXact)
 
virtual void finalizeLogInfo ()
 
void useTransportConnection (const Comm::ConnectionPointer &)
 
void useIcapConnection (const Comm::ConnectionPointer &)
 react to the availability of a fully-ready ICAP connection More...
 
void dieOnConnectionFailure ()
 
void tellQueryAborted ()
 
void maybeLog ()
 

Private Attributes

bool readAll
 read the entire OPTIONS response More...
 
JobWait< Comm::ConnOpenertransportWait
 waits for a transport connection to the ICAP server to be established/opened More...
 
JobWait< Ssl::IcapPeerConnectorencryptionWait
 waits for the established transport connection to be secured/encrypted More...
 
Comm::ConnectionPointer connection
 open and, if necessary, secured connection to the ICAP server (or nil) More...
 
AsyncCall::Pointer closer
 

Detailed Description

Definition at line 25 of file OptXact.h.

Member Typedef Documentation

◆ Pointer

Definition at line 34 of file AsyncJob.h.

Constructor & Destructor Documentation

◆ OptXact()

Adaptation::Icap::OptXact::OptXact ( ServiceRep::Pointer aService)

Definition at line 26 of file OptXact.cc.

Member Function Documentation

◆ callEnd()

void Adaptation::Icap::Xaction::callEnd ( )
virtualinherited

called right after the called job method

Reimplemented from AsyncJob.

Definition at line 378 of file Xaction.cc.

References AsyncJob::callEnd(), debugs, and HERE().

◆ callException()

void Adaptation::Icap::Xaction::callException ( const std::exception &  e)
virtualinherited

Reimplemented from AsyncJob.

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 371 of file Xaction.cc.

References AsyncJob::callException(), and Adaptation::Icap::xoError.

Referenced by Adaptation::Icap::ModXact::callException().

◆ callStart()

void AsyncJob::callStart ( AsyncCall call)
inherited

◆ canBeCalled()

bool AsyncJob::canBeCalled ( AsyncCall call) const
inherited

Definition at line 102 of file AsyncJob.cc.

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

◆ cancelRead()

void Adaptation::Icap::Xaction::cancelRead ( )
protectedinherited

Definition at line 485 of file Xaction.cc.

References Must, NULL, and Comm::ReadCancel().

◆ CBDATA_CLASS()

Adaptation::Icap::OptXact::CBDATA_CLASS ( OptXact  )
private

◆ clearError()

virtual void Adaptation::Icap::Xaction::clearError ( )
inlinevirtualinherited

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 118 of file Xaction.h.

Referenced by Adaptation::Icap::Launcher::launchXaction().

◆ clearInitiator()

void Adaptation::Initiate::clearInitiator ( )
protectedinherited

Definition at line 74 of file Initiate.cc.

◆ closeConnection()

void Adaptation::Icap::Xaction::closeConnection ( )
protectedinherited

◆ deleteThis()

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

◆ detailError()

virtual void Adaptation::Icap::Xaction::detailError ( const ErrorDetailPointer )
inlineprotectedvirtualinherited

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 82 of file Xaction.h.

◆ dieOnConnectionFailure()

void Adaptation::Icap::Xaction::dieOnConnectionFailure ( )
privateinherited

Definition at line 305 of file Xaction.cc.

References debugs, HERE(), MakeNamedErrorDetail(), and TexcHere.

Referenced by Adaptation::Icap::Xaction::dnsLookupDone().

◆ disableRepeats()

void Adaptation::Icap::Xaction::disableRepeats ( const char *  reason)
inherited

Definition at line 134 of file Xaction.cc.

References debugs.

Referenced by Adaptation::Icap::Launcher::launchXaction().

◆ disableRetries()

void Adaptation::Icap::Xaction::disableRetries ( )
inherited

Definition at line 127 of file Xaction.cc.

References debugs.

Referenced by Adaptation::Icap::Launcher::launchXaction().

◆ dnsLookupDone()

◆ done()

bool AsyncJob::done ( ) const
protectedinherited

◆ doneAll()

bool Adaptation::Icap::Xaction::doneAll ( ) const
protectedvirtualinherited

Reimplemented from AsyncJob.

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 387 of file Xaction.cc.

References AsyncJob::doneAll().

Referenced by Adaptation::Icap::ModXact::doneAll().

◆ doneReading()

virtual bool Adaptation::Icap::OptXact::doneReading ( ) const
inlineprotectedvirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 43 of file OptXact.h.

References Adaptation::Icap::Xaction::commEof, and readAll.

◆ doneWithIo()

bool Adaptation::Icap::Xaction::doneWithIo ( ) const
protectedinherited

Definition at line 531 of file Xaction.cc.

◆ doneWriting()

bool Adaptation::Icap::Xaction::doneWriting ( ) const
protectedvirtualinherited

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 526 of file Xaction.cc.

◆ fillDoneStatus()

void Adaptation::Icap::Xaction::fillDoneStatus ( MemBuf buf) const
protectedvirtualinherited

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 665 of file Xaction.cc.

References MemBuf::append(), Packable::appendf(), and NULL.

Referenced by Adaptation::Icap::ModXact::fillDoneStatus().

◆ fillPendingStatus()

void Adaptation::Icap::Xaction::fillPendingStatus ( MemBuf buf) const
protectedvirtualinherited

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 647 of file Xaction.cc.

References MemBuf::append(), Packable::appendf(), and NULL.

Referenced by Adaptation::Icap::ModXact::fillPendingStatus().

◆ fillVirginHttpHeader()

bool Adaptation::Icap::Xaction::fillVirginHttpHeader ( MemBuf ) const
protectedvirtualinherited

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 674 of file Xaction.cc.

◆ finalizeLogInfo()

void Adaptation::Icap::OptXact::finalizeLogInfo ( )
privatevirtual

◆ handleCommRead()

void Adaptation::Icap::OptXact::handleCommRead ( size_t  size)
protectedvirtual

◆ handleCommWrote()

void Adaptation::Icap::OptXact::handleCommWrote ( size_t  size)
protectedvirtual

Implements Adaptation::Icap::Xaction.

Definition at line 76 of file OptXact.cc.

References debugs, HERE(), and size.

◆ handleSecuredPeer()

◆ handleStopRequest()

void AsyncJob::handleStopRequest ( )
inlineinherited

Definition at line 71 of file AsyncJob.h.

References AsyncJob::mustStop().

◆ haveConnection()

bool Adaptation::Icap::Xaction::haveConnection ( ) const
protectedinherited

Definition at line 538 of file Xaction.cc.

References NULL.

◆ initiator()

void Adaptation::Initiate::initiator ( const CbcPointer< Initiator > &  i)
inherited

Definition at line 54 of file Initiate.cc.

References Must, and CbcPointer< Cbc >::valid().

Referenced by Adaptation::Initiator::initiateAdaptation().

◆ makeRequest()

◆ masterLogEntry()

AccessLogEntry::Pointer Adaptation::Icap::Xaction::masterLogEntry ( )
virtualinherited

Reimplemented in Adaptation::Icap::ModXact.

Definition at line 114 of file Xaction.cc.

References Store::nil.

◆ maybeLog()

void Adaptation::Icap::Xaction::maybeLog ( )
privateinherited

Definition at line 602 of file Xaction.cc.

References IcapLogfileStatus, icapLogLog(), and LOG_ENABLE.

◆ mayReadMore()

bool Adaptation::Icap::Xaction::mayReadMore ( ) const
protectedinherited

Definition at line 515 of file Xaction.cc.

◆ mustStop()

◆ noteCommClosed()

void Adaptation::Icap::Xaction::noteCommClosed ( const CommCloseCbParams io)
inherited

Definition at line 358 of file Xaction.cc.

References MakeNamedErrorDetail(), and NULL.

Referenced by Adaptation::Icap::Xaction::useIcapConnection().

◆ noteCommConnected()

void Adaptation::Icap::Xaction::noteCommConnected ( const CommConnectCbParams io)
inherited

◆ noteCommRead()

◆ noteCommTimedout()

void Adaptation::Icap::Xaction::noteCommTimedout ( const CommTimeoutCbParams io)
inherited

Definition at line 346 of file Xaction.cc.

References assert, debugs, Here, and HERE().

Referenced by Adaptation::Icap::Xaction::updateTimeout().

◆ noteCommWrote()

void Adaptation::Icap::Xaction::noteCommWrote ( const CommIoCbParams io)
inherited

◆ noteInitiatorAborted()

void Adaptation::Icap::Xaction::noteInitiatorAborted ( )
protectedvirtualinherited

Implements Adaptation::Initiate.

Definition at line 544 of file Xaction.cc.

References debugs, HERE(), MakeNamedErrorDetail(), and Adaptation::Icap::xoGone.

◆ openConnection()

void Adaptation::Icap::Xaction::openConnection ( )
protectedinherited

◆ parseHttpMsg()

bool Adaptation::Icap::Xaction::parseHttpMsg ( Http::Message msg)
protectedinherited

◆ parseResponse()

bool Adaptation::Icap::OptXact::parseResponse ( )
protected

◆ repeatable()

bool Adaptation::Icap::Xaction::repeatable ( ) const
inlineinherited

Definition at line 53 of file Xaction.h.

References Adaptation::Icap::Xaction::isRepeatable.

◆ retriable()

bool Adaptation::Icap::Xaction::retriable ( ) const
inlineinherited

Definition at line 52 of file Xaction.h.

References Adaptation::Icap::Xaction::isRetriable.

◆ scheduleRead()

void Adaptation::Icap::Xaction::scheduleRead ( )
protectedinherited

Definition at line 412 of file Xaction.cc.

References JobCallback, Must, Adaptation::Icap::Xaction::noteCommRead(), and Comm::Read().

◆ scheduleWrite()

void Adaptation::Icap::Xaction::scheduleWrite ( MemBuf buf)
protectedinherited

◆ sendAnswer()

void Adaptation::Initiate::sendAnswer ( const Answer answer)
protectedinherited

Definition at line 79 of file Initiate.cc.

References Adaptation::Initiator::noteAdaptationAnswer(), and ScheduleCallHere.

◆ service()

Adaptation::Icap::ServiceRep & Adaptation::Icap::Xaction::service ( )
inherited

Definition at line 121 of file Xaction.cc.

References Must, and NULL.

Referenced by Adaptation::Icap::ConnWaiterDialer::ConnWaiterDialer().

◆ setOutcome()

void Adaptation::Icap::Xaction::setOutcome ( const XactOutcome xo)
protectedinherited

Definition at line 558 of file Xaction.cc.

References debugs, HERE(), and Adaptation::Icap::xoUnknown.

◆ start()

void Adaptation::Icap::OptXact::start ( )
protectedvirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 33 of file OptXact.cc.

References Adaptation::Icap::Xaction::start().

◆ Start()

◆ startReading()

void Adaptation::Icap::OptXact::startReading ( )
protected

◆ startShoveling()

void Adaptation::Icap::OptXact::startShoveling ( )
protectedvirtual

◆ status()

const char * Adaptation::Icap::Xaction::status ( ) const
protectedvirtualinherited

for debugging, starts with space

Reimplemented from Adaptation::Initiate.

Definition at line 633 of file Xaction.cc.

References MemBuf::append(), Packable::appendf(), MemBuf::content(), MemBuf::reset(), and MemBuf::terminate().

Referenced by Adaptation::Icap::ModXact::ModXact().

◆ swanSong()

void Adaptation::Icap::OptXact::swanSong ( )
protectedvirtual

Reimplemented from Adaptation::Icap::Xaction.

Definition at line 122 of file OptXact.cc.

References Adaptation::Icap::Xaction::swanSong().

◆ tellQueryAborted() [1/2]

void Adaptation::Icap::Xaction::tellQueryAborted ( )
privateinherited

Definition at line 589 of file Xaction.cc.

References CallJobHere1.

◆ tellQueryAborted() [2/2]

void Adaptation::Initiate::tellQueryAborted ( bool  final)
protectedinherited

Definition at line 87 of file Initiate.cc.

References Adaptation::Answer::Error().

◆ toCbdata()

virtual void* CbdataParent::toCbdata ( )
pure virtualinherited

◆ updateTimeout()

void Adaptation::Icap::Xaction::updateTimeout ( )
protectedinherited

◆ useIcapConnection()

void Adaptation::Icap::Xaction::useIcapConnection ( const Comm::ConnectionPointer conn)
privateinherited

◆ useTransportConnection()

void Adaptation::Icap::Xaction::useTransportConnection ( const Comm::ConnectionPointer conn)
privateinherited

React to the availability of a transport connection to the ICAP service. The given connection may (or may not) be secured already.

Definition at line 264 of file Xaction.cc.

References assert, asyncCall(), conn, Adaptation::Icap::Config::connect_timeout(), fd_table, Adaptation::Icap::Xaction::handleSecuredPeer(), Comm::IsConnOpen(), and Adaptation::Icap::TheConfig.

Member Data Documentation

◆ al

AccessLogEntry& Adaptation::Icap::Xaction::al
protectedinherited

Definition at line 152 of file Xaction.h.

◆ alep

AccessLogEntry::Pointer Adaptation::Icap::Xaction::alep
protectedinherited

Definition at line 151 of file Xaction.h.

◆ attempts

int Adaptation::Icap::Xaction::attempts
inherited

Definition at line 67 of file Xaction.h.

Referenced by Adaptation::Icap::Launcher::launchXaction().

◆ closer

AsyncCall::Pointer Adaptation::Icap::Xaction::closer
privateinherited

Definition at line 168 of file Xaction.h.

◆ commEof

bool Adaptation::Icap::Xaction::commEof
protectedinherited

Definition at line 141 of file Xaction.h.

Referenced by Adaptation::Icap::ModXact::doneReading(), and doneReading().

◆ connection

Comm::ConnectionPointer Adaptation::Icap::Xaction::connection
privateinherited

Definition at line 166 of file Xaction.h.

◆ encryptionWait

JobWait<Ssl::IcapPeerConnector> Adaptation::Icap::Xaction::encryptionWait
privateinherited

Definition at line 163 of file Xaction.h.

◆ icap_tio_finish

timeval Adaptation::Icap::Xaction::icap_tio_finish
protectedinherited

Definition at line 156 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::Xaction().

◆ icap_tio_start

timeval Adaptation::Icap::Xaction::icap_tio_start
protectedinherited

Definition at line 155 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::Xaction().

◆ icap_tr_start

timeval Adaptation::Icap::Xaction::icap_tr_start
protectedinherited

Definition at line 154 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::Xaction().

◆ icapReply

HttpReply::Pointer Adaptation::Icap::Xaction::icapReply
inherited

Definition at line 64 of file Xaction.h.

Referenced by Adaptation::Icap::ModXact::ModXact().

◆ icapRequest

HttpRequest* Adaptation::Icap::Xaction::icapRequest
inherited

Definition at line 63 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::Xaction().

◆ id

const InstanceId<AsyncJob> AsyncJob::id
inherited

Definition at line 73 of file AsyncJob.h.

◆ ignoreLastWrite

bool Adaptation::Icap::Xaction::ignoreLastWrite
protectedinherited

Definition at line 145 of file Xaction.h.

◆ inCall

AsyncCall::Pointer AsyncJob::inCall
protectedinherited

◆ isRepeatable

bool Adaptation::Icap::Xaction::isRepeatable
protectedinherited

Definition at line 144 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::repeatable().

◆ isRetriable

bool Adaptation::Icap::Xaction::isRetriable
protectedinherited

Definition at line 143 of file Xaction.h.

Referenced by Adaptation::Icap::Xaction::retriable().

◆ readAll

bool Adaptation::Icap::OptXact::readAll
private

Definition at line 50 of file OptXact.h.

Referenced by doneReading().

◆ readBuf

SBuf Adaptation::Icap::Xaction::readBuf
protectedinherited

Definition at line 140 of file Xaction.h.

◆ reader

AsyncCall::Pointer Adaptation::Icap::Xaction::reader
protectedinherited

Definition at line 148 of file Xaction.h.

◆ reuseConnection

bool Adaptation::Icap::Xaction::reuseConnection
protectedinherited

Definition at line 142 of file Xaction.h.

◆ started_

bool AsyncJob::started_ = false
protectedinherited

Definition at line 83 of file AsyncJob.h.

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

◆ stopReason

const char* AsyncJob::stopReason
protectedinherited

◆ swanSang_

bool AsyncJob::swanSang_ = false
protectedinherited

Definition at line 84 of file AsyncJob.h.

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

◆ theInitiator

CbcPointer<Initiator> Adaptation::Initiate::theInitiator
protectedinherited

Definition at line 51 of file Initiate.h.

◆ theService

Adaptation::Icap::ServiceRep::Pointer Adaptation::Icap::Xaction::theService
protectedinherited

Definition at line 138 of file Xaction.h.

◆ transportWait

JobWait<Comm::ConnOpener> Adaptation::Icap::Xaction::transportWait
privateinherited

Definition at line 160 of file Xaction.h.

◆ typeName

◆ waitingForDns

bool Adaptation::Icap::Xaction::waitingForDns
protectedinherited

Definition at line 146 of file Xaction.h.

◆ writer

AsyncCall::Pointer Adaptation::Icap::Xaction::writer
protectedinherited

Definition at line 149 of file Xaction.h.


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors