#include <CodeContext.h>

Inheritance diagram for CodeContext:
Collaboration diagram for CodeContext:

Public Types

typedef RefCount< CodeContextPointer
 

Public Member Functions

 ~CodeContext () override
 
virtual ScopedId codeContextGist () const =0
 
virtual std::ostream & detailCodeContext (std::ostream &os) const =0
 appends human-friendly context description line(s) to a cache.log record More...
 

Static Public Member Functions

static const PointerCurrent ()
 
static void Reset ()
 forgets the current context, setting it to nil/unknown More...
 
static void Reset (const Pointer)
 changes the current context; nil argument sets it to nil/unknown More...
 

Public Attributes

Stopwatch busyTime
 time spent in this context (see also: busy_time) More...
 

Static Private Member Functions

static void ForgetCurrent ()
 
static void Entering (const Pointer &codeCtx)
 
static void Leaving ()
 

Detailed Description

Interface for reporting what Squid code is working on. Such reports are usually requested outside creator's call stack. They are especially useful for attributing low-level errors to transactions.

Definition at line 52 of file CodeContext.h.

Member Typedef Documentation

◆ Pointer

Definition at line 55 of file CodeContext.h.

Constructor & Destructor Documentation

◆ ~CodeContext()

CodeContext::~CodeContext ( )
inlineoverride

Definition at line 66 of file CodeContext.h.

Member Function Documentation

◆ codeContextGist()

virtual ScopedId CodeContext::codeContextGist ( ) const
pure virtual
Returns
a small, permanent ID of the current context gists persist forever and are suitable for passing to other SMP workers

Implemented in AccessLogEntry, AnyP::PortCfg, FadingCodeContext, Comm::Connection, and htcpSpecifier.

Referenced by Entering(), and operator<<().

◆ Current()

◆ detailCodeContext()

virtual std::ostream & CodeContext::detailCodeContext ( std::ostream &  os) const
pure virtual

◆ Entering()

void CodeContext::Entering ( const Pointer codeCtx)
staticprivate

Switches the current context to the given known context. Improves debugging output by replacing omni-directional "Reset" with directional "Entering".

Definition at line 55 of file CodeContext.cc.

References busyTime, codeContextGist(), debugs, ForgetCurrent(), Instance(), and Stopwatch::resume().

Referenced by Reset().

◆ ForgetCurrent()

void CodeContext::ForgetCurrent ( )
staticprivate

Forgets the current known context, possibly triggering its destruction. Preserves the gist of the being-forgotten context during its destruction. Knows nothing about the next context – the caller must set it.

Definition at line 42 of file CodeContext.cc.

References assert, and Instance().

Referenced by Entering(), and Leaving().

◆ Leaving()

void CodeContext::Leaving ( )
staticprivate

Forgets the current known context. Improves debugging output by replacing omni-directional "Reset" with directional "Leaving".

Definition at line 68 of file CodeContext.cc.

References debugs, ForgetCurrent(), and Instance().

Referenced by Reset().

◆ Reset() [1/2]

◆ Reset() [2/2]

void CodeContext::Reset ( const Pointer  codeCtx)
static

Definition at line 84 of file CodeContext.cc.

References Current(), Entering(), and Leaving().

Member Data Documentation

◆ busyTime

Stopwatch CodeContext::busyTime

Definition at line 76 of file CodeContext.h.

Referenced by Format::Format::assemble(), and Entering().


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors