*/
class CommonPool
{
+ MEMPROXY_CLASS(CommonPool);
public:
- void *operator new(size_t);
- void operator delete (void *);
static CommonPool *Factory (unsigned char _class, CompositePoolNode::Pointer&);
char const* theClassTypeLabel() const {return typeLabel.termedBuf();}
/// \ingroup DelayPoolsAPI
class CompositePoolNode : public RefCountable, public Updateable
{
+ MEMPROXY_CLASS(CompositePoolNode);
public:
typedef RefCount<CompositePoolNode> Pointer;
- void *operator new(size_t);
- void operator delete (void *);
virtual ~CompositePoolNode() {}
virtual void stats(StoreEntry * sentry) =0;
static unsigned char *DelayClasses();
static void registerForUpdates(Updateable *);
static void deregisterForUpdates (Updateable *);
- static long MemoryUsed;
static DelayPool *delay_data;
private:
#include "NullDelayId.h"
#include "Store.h"
-void *
-DelayTagged::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (DelayTagged);
- return ::operator new (size);
-}
-
-void
-DelayTagged::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (DelayTagged);
- ::operator delete (address);
-}
-
DelayTagged::DelayTagged()
{
DelayPools::registerForUpdates (this);
return new Id(this, details.tag);
}
-void *
-DelayTagged::Id::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (Id);
- return ::operator new (size);
-}
-
-void
-DelayTagged::Id::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (Id);
- ::operator delete (address);
-}
-
-void *
-DelayTaggedBucket::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (DelayTaggedBucket);
- return ::operator new (size);
-}
-
-void
-DelayTaggedBucket::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (DelayTaggedBucket);
- ::operator delete (address);
-}
-
DelayTaggedBucket::DelayTaggedBucket(String &aTag) : tag (aTag)
{
debugs(77, 3, "DelayTaggedBucket::DelayTaggedBucket");
/// \ingroup DelayPoolsAPI
class DelayTaggedBucket : public RefCountable
{
+ MEMPROXY_CLASS(DelayTaggedBucket);
public:
typedef RefCount<DelayTaggedBucket> Pointer;
- void *operator new(size_t);
- void operator delete (void *);
void stats(StoreEntry *)const;
DelayTaggedBucket(String &aTag);
/// \ingroup DelayPoolsAPI
class DelayTagged : public CompositePoolNode
{
+ MEMPROXY_CLASS(DelayTagged);
public:
typedef RefCount<DelayTagged> Pointer;
- void *operator new(size_t);
- void operator delete (void *);
+
DelayTagged();
virtual ~DelayTagged();
virtual void stats(StoreEntry * sentry);
/// \ingroup DelayPoolsInternal
class Id:public DelayIdComposite
{
+ MEMPROXY_CLASS(DelayTagged::Id);
public:
- void *operator new(size_t);
- void operator delete (void *);
Id (RefCount<DelayTagged>, String &);
~Id();
virtual int bytesWanted (int min, int max) const;
#include "NullDelayId.h"
#include "Store.h"
-void *
-DelayUser::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (DelayUser);
- return ::operator new (size);
-}
-
-void
-DelayUser::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (DelayUser);
- ::operator delete (address);
-}
-
DelayUser::DelayUser()
{
DelayPools::registerForUpdates (this);
return new Id(this, details.user->user());
}
-void *
-DelayUser::Id::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (Id);
- return ::operator new (size);
-}
-
-void
-DelayUser::Id::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (Id);
- ::operator delete (address);
-}
-
-void *
-DelayUserBucket::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (DelayUserBucket);
- return ::operator new (size);
-}
-
-void
-DelayUserBucket::operator delete(void *address)
-{
- DelayPools::MemoryUsed -= sizeof(DelayUserBucket);
- ::operator delete(address);
-}
-
DelayUserBucket::DelayUserBucket(Auth::User::Pointer aUser) : authUser(aUser)
{
debugs(77, 3, "DelayUserBucket::DelayUserBucket");
/// \ingroup DelayPoolsAPI
class DelayUserBucket : public RefCountable
{
+ MEMPROXY_CLASS(DelayUserBucket);
public:
typedef RefCount<DelayUserBucket> Pointer;
- void *operator new(size_t);
- void operator delete (void *);
void stats(StoreEntry *)const;
DelayUserBucket(Auth::User::Pointer);
/// \ingroup DelayPoolsAPI
class DelayUser : public CompositePoolNode
{
+ MEMPROXY_CLASS(DelayUser);
public:
typedef RefCount<DelayUser> Pointer;
- void *operator new(size_t);
- void operator delete (void *);
DelayUser();
virtual ~DelayUser();
virtual void stats(StoreEntry * sentry);
/// \ingroup DelayPoolsInternal
class Id:public DelayIdComposite
{
+ MEMPROXY_CLASS(DelayUser::Id);
public:
- void *operator new(size_t);
- void operator delete (void *);
Id(RefCount<DelayUser>, Auth::User::Pointer);
~Id();
virtual int bytesWanted (int min, int max) const;
#include "CommRead.h"
#include "DelayVector.h"
-void *
-DelayVector::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (DelayVector);
- return ::operator new (size);
-}
-
-void
-DelayVector::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (DelayVector);
- ::operator delete (address);
-}
-
DelayVector::DelayVector()
{
DelayPools::registerForUpdates (this);
pools.push_back(aNode);
}
-void *
-DelayVector::Id::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (Id);
- return ::operator new (size);
-}
-
-void
-DelayVector::Id::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (Id);
- ::operator delete (address);
-}
-
DelayVector::Id::Id(DelayVector::Pointer aDelayVector, CompositeSelectionDetails &details) : theVector(aDelayVector)
{
debugs(77, 3, "DelayVector::Id::Id");
/// \ingroup DelayPoolsAPI
class DelayVector : public CompositePoolNode
{
+ MEMPROXY_CLASS(DelayVector);
public:
typedef RefCount<DelayVector> Pointer;
- void *operator new(size_t);
- void operator delete (void *);
DelayVector();
virtual ~DelayVector();
virtual void stats(StoreEntry * sentry);
/// \ingroup DelayPoolsInternal
class Id:public DelayIdComposite
{
+ MEMPROXY_CLASS(DelayVector::Id);
public:
- void *operator new(size_t);
- void operator delete (void *);
-
Id (RefCount<DelayVector>,CompositeSelectionDetails &);
~Id();
virtual int bytesWanted (int min, int max) const;
DelayUser.h \
DelayVector.cc \
DelayVector.h \
- NullDelayId.cc \
NullDelayId.h \
ClientDelayConfig.cc \
ClientDelayConfig.h
+++ /dev/null
-/*
- * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
- *
- * Squid software is distributed under GPLv2+ license and includes
- * contributions from numerous individuals and organizations.
- * Please see the COPYING and CONTRIBUTORS files for details.
- */
-
-/* DEBUG: section 77 Delay Pools */
-
-#include "squid.h"
-
-#if USE_DELAY_POOLS
-#include "DelayPools.h"
-#include "NullDelayId.h"
-
-void *
-NullDelayId::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (NullDelayId);
- return ::operator new (size);
-}
-
-void
-NullDelayId::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (NullDelayId);
- ::operator delete (address);
-}
-
-#endif /* USE_DELAY_POOLS */
-
#define NULLDELAYID_H
#if USE_DELAY_POOLS
-#include "base/RefCount.h"
#include "DelayIdComposite.h"
class NullDelayId : public DelayIdComposite
{
+ MEMPROXY_CLASS(NullDelayId);
public:
- void *operator new(size_t);
- void operator delete (void *);
virtual int bytesWanted (int minimum, int maximum) const {return max(minimum,maximum);}
virtual void bytesIn(int qty) {}
#include "Store.h"
#include "StoreClient.h"
-/// \ingroup DelayPoolsInternal
-long DelayPools::MemoryUsed = 0;
-
/// \ingroup DelayPoolsInternal
class Aggregate : public CompositePoolNode
{
+ MEMPROXY_CLASS(Aggregate);
public:
typedef RefCount<Aggregate> Pointer;
- void *operator new(size_t);
- void operator delete (void *);
Aggregate();
~Aggregate();
virtual DelaySpec *rate() {return &spec;}
/// \ingroup DelayPoolsInternal
class AggregateId:public DelayIdComposite
{
+ MEMPROXY_CLASS(Aggregate::AggregateId);
public:
- void *operator new(size_t);
- void operator delete (void *);
AggregateId (RefCount<Aggregate>);
virtual int bytesWanted (int min, int max) const;
virtual void bytesIn(int qty);
/// \ingroup DelayPoolsInternal
class Id:public DelayIdComposite
{
+ MEMPROXY_CLASS(VectorPool::Id);
public:
- void *operator new(size_t);
- void operator delete (void *);
Id (RefCount<VectorPool>, int);
virtual int bytesWanted (int min, int max) const;
virtual void bytesIn(int qty);
/// \ingroup DelayPoolsInternal
class IndividualPool : public VectorPool
{
-
-public:
- void *operator new(size_t);
- void operator delete(void *);
+ MEMPROXY_CLASS(IndividualPool);
protected:
virtual char const *label() const {return "Individual";}
/// \ingroup DelayPoolsInternal
class ClassCNetPool : public VectorPool
{
-
-public:
- void *operator new(size_t);
- void operator delete (void *);
+ MEMPROXY_CLASS(ClassCNetPool);
protected:
virtual char const *label() const {return "Network";}
/// \ingroup DelayPoolsInternal
class Id:public DelayIdComposite
{
+ MEMPROXY_CLASS(ClassCHostPool::Id);
public:
- void *operator new(size_t);
- void operator delete (void *);
Id (RefCount<ClassCHostPool>, unsigned char, unsigned char);
virtual int bytesWanted (int min, int max) const;
virtual void bytesIn(int qty);
theAggregate->delayRead(aRead);
}
-void *
-CommonPool::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (CommonPool);
- return ::operator new (size);
-}
-
-void
-CommonPool::operator delete(void *address)
-{
- DelayPools::MemoryUsed -= sizeof(CommonPool);
- ::operator delete(address);
-}
-
CommonPool *
CommonPool::Factory(unsigned char _class, CompositePoolNode::Pointer& compositeCopy)
{
individuals.values[newIndex].init (rate);
}
-void *
-CompositePoolNode::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (CompositePoolNode);
- return ::operator new (size);
-}
-
-void
-CompositePoolNode::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (CompositePoolNode);
- ::operator delete (address);
-}
-
-void *
-Aggregate::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (Aggregate);
- return ::operator new (size);
-}
-
-void
-Aggregate::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (Aggregate);
- ::operator delete (address);
-}
-
Aggregate::Aggregate()
{
theBucket.init (*rate());
return new NullDelayId;
}
-void *
-Aggregate::AggregateId::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (AggregateId);
- return ::operator new (size);
-}
-
-void
-Aggregate::AggregateId::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (AggregateId);
- ::operator delete (address);
-}
-
Aggregate::AggregateId::AggregateId(RefCount<Aggregate> anAggregate) : theAggregate(anAggregate)
{}
DelayPools::delay_data = new DelayPool[pools()];
- DelayPools::MemoryUsed += pools() * sizeof(DelayPool);
-
eventAdd("DelayPools::Update", DelayPools::Update, NULL, 1.0, 1);
}
{
eventDelete(DelayPools::Update, NULL);
delete[] DelayPools::delay_data;
- DelayPools::MemoryUsed -= pools() * sizeof(*DelayPools::delay_data);
pools_ = 0;
}
void
DelayPools::Stats(StoreEntry * sentry)
{
- unsigned short i;
-
storeAppendPrintf(sentry, "Delay pools configured: %d\n\n", DelayPools::pools());
- for (i = 0; i < DelayPools::pools(); ++i) {
+ for (unsigned short i = 0; i < DelayPools::pools(); ++i) {
if (DelayPools::delay_data[i].theComposite().getRaw()) {
storeAppendPrintf(sentry, "Pool: %d\n\tClass: %s\n\n", i + 1, DelayPools::delay_data[i].pool->theClassTypeLabel());
DelayPools::delay_data[i].theComposite()->stats (sentry);
} else
storeAppendPrintf(sentry, "\tMisconfigured pool.\n\n");
}
-
- storeAppendPrintf(sentry, "Memory Used: %d bytes\n", (int) DelayPools::MemoryUsed);
}
void
return index;
}
-void *
-IndividualPool::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (IndividualPool);
- return ::operator new (size);
-}
-
-void
-IndividualPool::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (IndividualPool);
- ::operator delete (address);
-}
-
VectorPool::VectorPool()
{
DelayPools::registerForUpdates (this);
return new Id(this, resultIndex);
}
-void *
-VectorPool::Id::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (Id);
- return ::operator new (size);
-}
-
-void
-VectorPool::Id::operator delete(void *address)
-{
- DelayPools::MemoryUsed -= sizeof (Id);
- ::operator delete (address);
-}
-
VectorPool::Id::Id(VectorPool::Pointer aPool, int anIndex) : theVector (aPool), theIndex (anIndex)
{}
return (ntohl(host.s_addr) & 0xff);
}
-void *
-ClassCNetPool::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (ClassCNetPool);
- return ::operator new (size);
-}
-
-void
-ClassCNetPool::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (ClassCNetPool);
- ::operator delete (address);
-}
-
unsigned int
ClassCNetPool::makeKey(Ip::Address &src_addr) const
{
return new Id (this, netIndex, hostIndex);
}
-void *
-ClassCHostPool::Id::operator new(size_t size)
-{
- DelayPools::MemoryUsed += sizeof (Id);
- return ::operator new (size);
-}
-
-void
-ClassCHostPool::Id::operator delete (void *address)
-{
- DelayPools::MemoryUsed -= sizeof (Id);
- ::operator delete (address);
-}
-
ClassCHostPool::Id::Id (ClassCHostPool::Pointer aPool, unsigned char aNet, unsigned char aHost) : theClassCHost (aPool), theNet (aNet), theHost (aHost)
{}