Sequence.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2022 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9/* DEBUG: section 86 ESI processing */
10
11#ifndef SQUID_ESISEQUENCE_H
12#define SQUID_ESISEQUENCE_H
13
14#include "esi/Element.h"
15#include "mem/forward.h"
16
17/* esiSequence */
18
19class esiSequence : public ESIElement
20{
22
23public:
24 esiSequence(esiTreeParentPtr, bool = false);
26
31 bool mayFail () const;
32 void wontFail();
33 void fail(ESIElement *, char const *anError = nullptr);
34 void makeCachableElements(esiSequence const &old);
35 Pointer makeCacheable() const;
36 void makeUsableElements(esiSequence const &old, ESIVarState &);
38
39 Esi::Elements elements; /* unprocessed or rendered nodes */
41
42 struct {
43 int dovars:1; /* for esiVar */
45 void finish();
46
47protected:
48 esiSequence(esiSequence const &);
50
51private:
52 int elementIndex (ESIElement::Pointer anElement) const;
54 bool failed;
55 esiProcessResult_t processOne(int, size_t);
60 size_t nextElementToProcess() const;
61 void nextElementToProcess(size_t const &);
62 bool finishedProcessing() const;
63 void processStep(int dovars);
64};
65
66#endif /* SQUID_ESISEQUENCE_H */
67
esiProcessResult_t
Definition: Element.h:18
bool failed
Definition: Sequence.h:54
void render(ESISegment::Pointer)
Definition: Sequence.cc:82
void processStep(int dovars)
Definition: Sequence.cc:187
bool finishedProcessing() const
Definition: Sequence.cc:60
int dovars
Definition: Sequence.h:43
bool addElement(ESIElement::Pointer)
Definition: Sequence.cc:148
MEMPROXY_CLASS(esiSequence)
size_t processedcount
Definition: Sequence.h:40
size_t nextElementToProcess() const
Definition: Sequence.cc:48
bool mayFail() const
Definition: Sequence.cc:66
void provideData(ESISegment::Pointer, ESIElement *)
Definition: Sequence.cc:112
bool mayFail_
Definition: Sequence.h:53
void makeUsableElements(esiSequence const &old, ESIVarState &)
Definition: Sequence.cc:347
bool const provideIncrementalData
Definition: Sequence.h:56
esiTreeParentPtr parent
Definition: Sequence.h:49
Esi::Elements elements
Definition: Sequence.h:39
size_t nextElementToProcess_
Definition: Sequence.h:59
esiSequence(esiTreeParentPtr, bool=false)
Definition: Sequence.cc:33
void fail(ESIElement *, char const *anError=nullptr)
Definition: Sequence.cc:307
void wontFail()
Definition: Sequence.cc:75
esiProcessResult_t processOne(int, size_t)
Definition: Sequence.cc:200
Pointer makeCacheable() const
Definition: Sequence.cc:358
int elementIndex(ESIElement::Pointer anElement) const
Definition: Sequence.cc:177
~esiSequence()
Definition: Sequence.cc:27
void makeCachableElements(esiSequence const &old)
Definition: Sequence.cc:336
bool processing
Definition: Sequence.h:57
Pointer makeUsable(esiTreeParentPtr, ESIVarState &) const
Definition: Sequence.cc:377
void finish()
Definition: Sequence.cc:104
esiProcessResult_t processingResult
Definition: Sequence.h:58
struct esiSequence::@67 flags
esiProcessResult_t process(int dovars)
Definition: Sequence.cc:238
std::vector< ESIElement::Pointer > Elements
an ordered set of ESI elements
Definition: Element.h:92

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors