#include <MasterXaction.h>

Inheritance diagram for MasterXaction:
Collaboration diagram for MasterXaction:

Public Types

typedef RefCount< MasterXactionPointer

Static Public Member Functions

template<XactionInitiator::Initiator anInitiator>
static Pointer MakePortless ()
 Create a master transaction not associated with a AnyP::PortCfg port. More...
static Pointer MakePortful (const AnyP::PortCfgPointer &aPort)

Public Attributes

InstanceId< MasterXaction, uint64_t > id
 transaction ID. More...
AnyP::PortCfgPointer squidPort
 the listening port which originated this transaction More...
Comm::ConnectionPointer tcpClient
 the client TCP connection which originated this transaction More...
XactionInitiator initiator
 the initiator of this transaction More...
bool generatingConnect = false
 whether we are currently creating a CONNECT header (to be sent to peer) More...

Private Member Functions

 MasterXaction (const XactionInitiator anInitiator, const AnyP::PortCfgPointer &aPort)

Detailed Description

Master transaction details.

Aggregates historical data from individual related protocol-specific transactions such as an HTTP client transaction and the corresponding HTTP or FTP server transaction.

Individual transaction information worth sending or logging should be recorded here, ideally without exposing other master transaction users to internal details of individual transactions. For example, storing an HTTP client IP address is a good idea but storing a pointer to some client-side job which maintains that address is not.

A master transaction is created by a newly accepted client connection, a new request on the existing client connection, or an internal request generated by Squid. All client-side protocols, including HTTP, HTCP, ICP, and SNMP will eventually create master transactions.

A master transaction is auto-destroyed when its last user is gone.

Definition at line 39 of file MasterXaction.h.

Member Typedef Documentation

◆ Pointer

Definition at line 42 of file MasterXaction.h.

Constructor & Destructor Documentation

◆ MasterXaction()

MasterXaction::MasterXaction ( const XactionInitiator  anInitiator,
const AnyP::PortCfgPointer aPort 

Definition at line 78 of file MasterXaction.h.

Referenced by MakePortful(), and MakePortless().

Member Function Documentation

◆ MakePortful()

static Pointer MasterXaction::MakePortful ( const AnyP::PortCfgPointer aPort)

◆ MakePortless()

template<XactionInitiator::Initiator anInitiator>
static Pointer MasterXaction::MakePortless ( )

Definition at line 46 of file MasterXaction.h.

References MasterXaction(), and XactionInitiator::initClient.

Member Data Documentation

◆ generatingConnect

bool MasterXaction::generatingConnect = false

Definition at line 72 of file MasterXaction.h.

◆ id

InstanceId<MasterXaction, uint64_t> MasterXaction::id

Definition at line 60 of file MasterXaction.h.

Referenced by Format::Format::assemble().

◆ initiator

XactionInitiator MasterXaction::initiator

Definition at line 69 of file MasterXaction.h.

Referenced by Acl::TransactionInitiator::match().

◆ squidPort

AnyP::PortCfgPointer MasterXaction::squidPort

Definition at line 63 of file MasterXaction.h.

Referenced by FindGoodListeningPortAddress().

◆ tcpClient

Comm::ConnectionPointer MasterXaction::tcpClient

Definition at line 66 of file MasterXaction.h.

Referenced by ConnStateData::ConnStateData(), and FindGoodListeningPortAddress().

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






Web Site Translations