Replace several objects use of CBDATA_TYPE to CBDATA_CLASS.
Change esiRemove from CBDATA to MEMPROXY_CLASS.
Remove dead code from earlier CBDATA updates.
#include "esi/Element.h"
#include "esi/Sequence.h"
-/* esiAttempt */
-
struct esiAttempt : public esiSequence {
- // void *operator new (size_t byteCount);
- // void operator delete (void *address);
esiAttempt(esiTreeParentPtr aParent) : esiSequence (aParent) {}
};
#include "esi/Expression.h"
#include "esi/Segment.h"
#include "esi/VarState.h"
+#include "fatal.h"
#include "HttpHdrSc.h"
#include "HttpHdrScTarget.h"
#include "HttpReply.h"
class esiRemove : public ESIElement
{
+ MEMPROXY_CLASS(esiRemove);
public:
- void *operator new (size_t byteCount);
- void operator delete (void *address);
-
- esiRemove();
- void render(ESISegment::Pointer);
- bool addElement (ESIElement::Pointer);
- Pointer makeCacheable() const;
- Pointer makeUsable(esiTreeParentPtr, ESIVarState &) const;
- void finish();
+ esiRemove() : ESIElement() {}
+ virtual ~esiRemove() {}
+
+ virtual void render(ESISegment::Pointer);
+ virtual bool addElement (ESIElement::Pointer);
+ virtual Pointer makeCacheable() const;
+ virtual Pointer makeUsable(esiTreeParentPtr, ESIVarState &) const;
+ virtual void finish() {}
};
-CBDATA_TYPE (esiRemove);
-static FREE esiRemoveFree;
-static ESIElement * esiRemoveNew(void);
-
class esiTry : public ESIElement
{
MEMPROXY_CLASS(esiTry);
};
struct esiOtherwise : public esiSequence {
- // void *operator new (size_t byteCount);
- // void operator delete (void *address);
esiOtherwise(esiTreeParentPtr aParent) : esiSequence (aParent) {}
};
case ESIElement::ESI_ELEMENT_REMOVE:
/* Put on the stack to allow skipping of 'invalid' markup */
- element = esiRemoveNew ();
+ element = new esiRemove();
break;
case ESIElement::ESI_ELEMENT_TRY:
}
/* esiRemove */
-void
-esiRemoveFree (void *data)
-{
- esiRemove *thisNode = (esiRemove *)data;
- debugs(86, 5, "esiRemoveFree " << thisNode);
-}
-
-void *
-esiRemove::operator new(size_t byteCount)
-{
- assert (byteCount == sizeof (esiRemove));
- void *rv;
- CBDATA_INIT_TYPE_FREECB(esiRemove, esiRemoveFree);
- rv = (void *)cbdataAlloc (esiRemove);
- return rv;
-}
-
-void
-esiRemove::operator delete (void *address)
-{
- cbdataFree (address);
-}
-
-ESIElement *
-esiRemoveNew ()
-{
- return new esiRemove;
-}
-
-esiRemove::esiRemove()
-{}
-
-void
-esiRemove::finish()
-{}
-
void
esiRemove::render(ESISegment::Pointer output)
{
except = NULL;
}
-/* esiAttempt */
-#if 0
-void *
-esiAttempt::operator new(size_t byteCount)
-{
- assert (byteCount == sizeof (esiAttempt));
-
-}
-
-void
-esiAttempt::operator delete (void *address)
-{
- cbdataFree (address);
-}
-
-#endif
-
-/* esiExcept */
-#if 0
-void *
-esiExcept::operator new(size_t byteCount)
-{
- assert (byteCount == sizeof (esiExcept));
- void *rv;
- CBDATA_INIT_TYPE_FREECB(esiExcept, esiSequence::Free);
- rv = (void *)cbdataAlloc (esiExcept);
- return rv;
-}
-
-void
-esiExcept::operator delete (void *address)
-{
- cbdataFree (address);
-}
-
-#endif
-
-/* ESIVar */
-#if 0
-void *
-esiVar::operator new(size_t byteCount)
-{
- assert (byteCount == sizeof (esiVar));
- void *rv;
- CBDATA_INIT_TYPE_FREECB(esiVar, esiSequence::Free);
- rv = (void *)cbdataAlloc (esiVar);
- return rv;
-}
-
-void
-esiVar::operator delete (void *address)
-{
- cbdataFree (address);
-}
-
-#endif
-
/* esiChoose */
esiChoose::~esiChoose()
{
return result;
}
-/* esiOtherwise */
-#if 0
-void *
-esiOtherwise::operator new(size_t byteCount)
-{
- assert (byteCount == sizeof (esiOtherwise));
- void *rv;
- CBDATA_INIT_TYPE_FREECB(esiOtherwise, esiSequence::Free);
- rv = (void *)cbdataAlloc (esiOtherwise);
- return rv;
-}
-
-void
-esiOtherwise::operator delete (void *address)
-{
- cbdataFree (address);
-}
-
-#endif
-
/* TODO: implement surrogate targeting and control processing */
int
esiEnableProcessing (HttpReply *rep)
{
public:
- // void *operator new (size_t byteCount);
- // void operator delete (void *address);
esiExcept(esiTreeParentPtr aParent) : esiSequence (aParent) {}
};
#include "squid.h"
-/* MS Visual Studio Projects are monolithic, so we need the following
- * #if to exclude the ESI code from compile process when not needed.
- */
-#if (USE_SQUID_ESI == 1)
+#if USE_SQUID_ESI
#include "client_side.h"
#include "client_side_request.h"
#include "esi/Include.h"
#include "esi/VarState.h"
+#include "fatal.h"
#include "HttpReply.h"
#include "log/access_log.h"
}
}
-#endif /* USE_SQUID_ESI == 1 */
+#endif /* USE_SQUID_ESI */
#include "esi/Segment.h"
#include "SquidString.h"
-CBDATA_TYPE(ESISegment);
+CBDATA_CLASS_INIT(ESISegment);
-/* ESISegment */
void
ESISegmentFreeList (ESISegment::Pointer &head)
{
head->tail()->listAppend (s, len);
}
-void *
-ESISegment::operator new(size_t byteCount)
-{
- assert (byteCount == sizeof (ESISegment));
- void *rv;
- CBDATA_INIT_TYPE(ESISegment);
- rv = (void *)cbdataAlloc (ESISegment);
- return rv;
-}
-
-void
-ESISegment::operator delete (void *address)
-{
- cbdataFree (address);
-}
-
/* XXX: if needed, make this iterative */
ESISegment::Pointer
ESISegment::cloneList () const
return result.getRaw();
}
-ESISegment::ESISegment() : len(0), next(NULL)
-{}
-
ESISegment::ESISegment(ESISegment const &old) : len (0), next(NULL)
{
append (old.buf, old.len);
class ESISegment : public RefCountable
{
+ CBDATA_CLASS(ESISegment);
public:
typedef RefCount<ESISegment> Pointer;
static void ListAppend (Pointer &, char const *, size_t);
static void ListTransfer (Pointer &from, Pointer &to);
- void *operator new (size_t byteCount);
- void operator delete (void *address);
- ESISegment();
+ ESISegment() : len(0), next(NULL) {*buf = 0;}
ESISegment(ESISegment const &);
+ ~ESISegment() {}
+
ESISegment::Pointer cloneList() const;
char *listToChar() const;
void listAppend (char const *s, size_t length);
{
public:
- // void *operator new (size_t byteCount);
- // void operator delete (void *address);
ESIVar(esiTreeParentPtr aParent) : esiSequence (aParent) {
flags.dovars = 1;
}
#include "fatal.h"
#include "HttpReply.h"
-CBDATA_TYPE (ESIVarState);
-FREE ESIVarStateFree;
-
char const *ESIVariableUserAgent::esiUserOs[]= {
"WIN",
"MAC",
"OTHER"
};
+CBDATA_CLASS_INIT(ESIVarState);
+
void
ESIVarState::Variable::eval (ESIVarState &state, char const *subref, char const *found_default) const
{
return rv;
}
-/* ESIVarState */
-void
-esiVarStateFree (void *data)
-{
- ESIVarState *thisNode = (ESIVarState*)data;
- thisNode->freeResources();
-}
-
ESIVarState::~ESIVarState()
{
- freeResources();
+ // freeResources
+ input = NULL;
+ ESISegmentFreeList(output);
+ hdr.clean();
while (!variablesForCleanup.empty()) {
delete variablesForCleanup.back();
delete defaultVariable;
}
-void
-ESIVarState::freeResources()
-{
- input = NULL;
- ESISegmentFreeList (output);
- hdr.clean();
-}
-
-void *
-ESIVarState::operator new(size_t byteCount)
-{
- assert (byteCount == sizeof (ESIVarState));
- void *rv;
- CBDATA_INIT_TYPE_FREECB(ESIVarState, esiVarStateFree);
- rv = (void *)cbdataAlloc (ESIVarState);
- return rv;
-}
-
-void
-ESIVarState::operator delete (void *address)
-{
- cbdataFree (address);
-}
-
char *
ESIVariableUserAgent::getProductVersion (char const *s)
{
class ESIVarState
{
+ CBDATA_CLASS(ESIVarState);
public:
+ ESIVarState(HttpHeader const *hdr, char const *uri);
+ ~ESIVarState();
+
ESISegment::Pointer extractList();
char *extractChar();
void feedData (const char *buf, size_t len);
void addVariable (char const *, size_t, Variable *);
void removeVariable (String const &);
- void *operator new (size_t byteCount);
- void operator delete (void *address);
- void freeResources();
- ESIVarState (HttpHeader const *hdr, char const *uri);
- ~ESIVarState();
-
/* For Variables */
void cookieUsed();
void hostUsed();