#include <Sequence.h>

Inheritance diagram for esiSequence:
Collaboration diagram for esiSequence:

Public Types

enum  ESIElementType_t {
  ESI_ELEMENT_NONE ,
  ESI_ELEMENT_INCLUDE ,
  ESI_ELEMENT_COMMENT ,
  ESI_ELEMENT_REMOVE ,
  ESI_ELEMENT_TRY ,
  ESI_ELEMENT_ATTEMPT ,
  ESI_ELEMENT_EXCEPT ,
  ESI_ELEMENT_VARS ,
  ESI_ELEMENT_CHOOSE ,
  ESI_ELEMENT_WHEN ,
  ESI_ELEMENT_OTHERWISE ,
  ESI_ELEMENT_ASSIGN
}
 
typedef RefCount< ESIElementPointer
 

Public Member Functions

 esiSequence (esiTreeParentPtr, bool=false)
 
 ~esiSequence () override
 
void render (ESISegment::Pointer) override
 
bool addElement (ESIElement::Pointer) override
 
esiProcessResult_t process (int dovars) override
 
void provideData (ESISegment::Pointer, ESIElement *) override
 
bool mayFail () const override
 
void wontFail ()
 
void fail (ESIElement *, char const *anError=nullptr) override
 
void makeCachableElements (esiSequence const &old)
 
Pointer makeCacheable () const override
 
void makeUsableElements (esiSequence const &old, ESIVarState &)
 
Pointer makeUsable (esiTreeParentPtr, ESIVarState &) const override
 
void finish () override
 

Static Public Member Functions

static ESIElementType_t IdentifyElement (const char *)
 

Public Attributes

Esi::Elements elements
 
size_t processedcount
 
struct {
   unsigned int   dovars:1
 
flags
 

Protected Member Functions

 esiSequence (esiSequence const &)
 

Protected Attributes

esiTreeParentPtr parent
 

Private Member Functions

 MEMPROXY_CLASS (esiSequence)
 
int elementIndex (ESIElement::Pointer anElement) const
 
esiProcessResult_t processOne (int, size_t)
 
size_t nextElementToProcess () const
 
void nextElementToProcess (size_t const &)
 
bool finishedProcessing () const
 
void processStep (int dovars)
 

Private Attributes

bool mayFail_
 
bool failed
 
bool const provideIncrementalData
 
bool processing
 
esiProcessResult_t processingResult
 
size_t nextElementToProcess_
 

Detailed Description

Definition at line 19 of file Sequence.h.

Member Typedef Documentation

◆ Pointer

Definition at line 46 of file Element.h.

Member Enumeration Documentation

◆ ESIElementType_t

Enumerator
ESI_ELEMENT_NONE 
ESI_ELEMENT_INCLUDE 
ESI_ELEMENT_COMMENT 
ESI_ELEMENT_REMOVE 
ESI_ELEMENT_TRY 
ESI_ELEMENT_ATTEMPT 
ESI_ELEMENT_EXCEPT 
ESI_ELEMENT_VARS 
ESI_ELEMENT_CHOOSE 
ESI_ELEMENT_WHEN 
ESI_ELEMENT_OTHERWISE 
ESI_ELEMENT_ASSIGN 

Definition at line 49 of file Element.h.

Constructor & Destructor Documentation

◆ esiSequence() [1/2]

esiSequence::esiSequence ( esiTreeParentPtr  aParent,
bool  incrementalFlag = false 
)

Definition at line 33 of file Sequence.cc.

References flags.

Referenced by makeCacheable(), and makeUsable().

◆ ~esiSequence()

esiSequence::~esiSequence ( )
override

Definition at line 27 of file Sequence.cc.

References debugs, elements, and FinishAllElements().

◆ esiSequence() [2/2]

esiSequence::esiSequence ( esiSequence const &  old)
protected

Definition at line 322 of file Sequence.cc.

References dovars, and flags.

Member Function Documentation

◆ addElement()

bool esiSequence::addElement ( ESIElement::Pointer  element)
overridevirtual

Reimplemented from ESIElement.

Definition at line 148 of file Sequence.cc.

References DBG_CRITICAL, debugs, elements, RefCount< C >::getRaw(), and ESISegment::ListTransfer().

Referenced by makeCachableElements(), and makeUsableElements().

◆ elementIndex()

int esiSequence::elementIndex ( ESIElement::Pointer  anElement) const
private

Definition at line 177 of file Sequence.cc.

References elements.

Referenced by provideData().

◆ fail()

void esiSequence::fail ( ESIElement ,
char const *  anError = nullptr 
)
overridevirtual

Reimplemented from esiTreeParent.

Definition at line 307 of file Sequence.cc.

References debugs, elements, esiTreeParent::fail(), failed, FinishAllElements(), parent, and processing.

◆ finish()

void esiSequence::finish ( )
overridevirtual

Implements ESIElement.

Definition at line 104 of file Sequence.cc.

References debugs, elements, FinishAllElements(), and parent.

◆ finishedProcessing()

bool esiSequence::finishedProcessing ( ) const
private

Definition at line 60 of file Sequence.cc.

References elements, and nextElementToProcess().

Referenced by process().

◆ IdentifyElement()

◆ makeCachableElements()

void esiSequence::makeCachableElements ( esiSequence const &  old)

Definition at line 336 of file Sequence.cc.

References addElement(), assert, elements, and RefCount< C >::getRaw().

Referenced by makeCacheable().

◆ makeCacheable()

ESIElement::Pointer esiSequence::makeCacheable ( ) const
overridevirtual

◆ makeUsable()

ESIElement::Pointer esiSequence::makeUsable ( esiTreeParentPtr  newParent,
ESIVarState newVarState 
) const
overridevirtual

Implements ESIElement.

Definition at line 377 of file Sequence.cc.

References esiSequence(), assert, debugs, elements, failed, makeUsableElements(), parent, and processedcount.

◆ makeUsableElements()

void esiSequence::makeUsableElements ( esiSequence const &  old,
ESIVarState newVarState 
)

Definition at line 347 of file Sequence.cc.

References addElement(), assert, elements, and RefCount< C >::getRaw().

Referenced by esiWhen::makeUsable(), and makeUsable().

◆ mayFail()

bool esiSequence::mayFail ( ) const
overridevirtual

Reimplemented from ESIElement.

Definition at line 66 of file Sequence.cc.

References failed, and mayFail_.

◆ MEMPROXY_CLASS()

esiSequence::MEMPROXY_CLASS ( esiSequence  )
private

◆ nextElementToProcess() [1/2]

size_t esiSequence::nextElementToProcess ( ) const
private

Definition at line 48 of file Sequence.cc.

References nextElementToProcess_.

Referenced by finishedProcessing(), process(), and processStep().

◆ nextElementToProcess() [2/2]

void esiSequence::nextElementToProcess ( size_t const &  aSizeT)
private

Definition at line 54 of file Sequence.cc.

References nextElementToProcess_.

◆ process()

◆ processOne()

esiProcessResult_t esiSequence::processOne ( int  dovars,
size_t  index 
)
private

◆ processStep()

void esiSequence::processStep ( int  dovars)
private

Definition at line 187 of file Sequence.cc.

References debugs, dovars, nextElementToProcess(), processingResult, and processOne().

Referenced by process().

◆ provideData()

void esiSequence::provideData ( ESISegment::Pointer  data,
ESIElement source 
)
overridevirtual

◆ render()

void esiSequence::render ( ESISegment::Pointer  output)
overridevirtual

Implements ESIElement.

Definition at line 82 of file Sequence.cc.

References assert, debugs, elements, FinishAnElement(), ESISegment::next, processedcount, and ESISegment::tail().

Referenced by process().

◆ wontFail()

void esiSequence::wontFail ( )

Definition at line 75 of file Sequence.cc.

References assert, failed, and mayFail_.

Referenced by process().

Member Data Documentation

◆ dovars

unsigned int esiSequence::dovars

Definition at line 43 of file Sequence.h.

Referenced by esiSequence(), process(), processOne(), and processStep().

◆ elements

◆ failed

bool esiSequence::failed
private

Definition at line 54 of file Sequence.h.

Referenced by fail(), makeCacheable(), makeUsable(), mayFail(), process(), and wontFail().

◆ 

struct { ... } esiSequence::flags

◆ mayFail_

bool esiSequence::mayFail_
private

Definition at line 53 of file Sequence.h.

Referenced by mayFail(), and wontFail().

◆ nextElementToProcess_

size_t esiSequence::nextElementToProcess_
private

Definition at line 59 of file Sequence.h.

Referenced by nextElementToProcess().

◆ parent

esiTreeParentPtr esiSequence::parent
protected

Definition at line 49 of file Sequence.h.

Referenced by fail(), finish(), esiWhen::makeUsable(), makeUsable(), and process().

◆ processedcount

size_t esiSequence::processedcount

Definition at line 40 of file Sequence.h.

Referenced by makeCacheable(), makeUsable(), process(), processOne(), and render().

◆ processing

bool esiSequence::processing
private

Definition at line 57 of file Sequence.h.

Referenced by fail(), process(), and provideData().

◆ processingResult

esiProcessResult_t esiSequence::processingResult
private

Definition at line 58 of file Sequence.h.

Referenced by process(), and processStep().

◆ provideIncrementalData

bool const esiSequence::provideIncrementalData
private

Definition at line 56 of file Sequence.h.

Referenced by process().


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors