/// \ingroup POD
template <class C>
-class List
+class CbDataList
{
public:
void *operator new (size_t);
void operator delete (void *);
- List (C const &);
- ~List();
+ CbDataList (C const &);
+ ~CbDataList();
bool find(C const &)const;
bool findAndTune(C const &);
- List *next;
+ CbDataList *next;
C element;
bool empty() const { return this == NULL; }
private:
- CBDATA_CLASS(List);
+ CBDATA_CLASS(CbDataList);
};
/// \ingroup POD
template<class C>
-class ListContainer
+class CbDataListContainer
{
public:
- ListContainer();
- ~ListContainer();
- List<C> *push_back (C const &);
+ CbDataListContainer();
+ ~CbDataListContainer();
+ CbDataList<C> *push_back (C const &);
C pop_front();
bool empty() const;
- List<C> *head;
+ CbDataList<C> *head;
};
/// \ingroup POD
template<class C>
-class ListIterator
+class CbDataListIterator
{
public:
- ListIterator(ListContainer<C> const &list) : next_entry(list.head) {}
+ CbDataListIterator(CbDataListContainer<C> const &list) : next_entry(list.head) {}
const C & next() {
- List<C> *entry = next_entry;
+ CbDataList<C> *entry = next_entry;
if (entry)
next_entry = entry->next;
return entry->element;
}
private:
- List<C> *next_entry;
+ CbDataList<C> *next_entry;
};
/* implementation follows */
/** \cond AUTODOCS-IGNORE */
template <class C>
-cbdata_type List<C>::CBDATA_List = CBDATA_UNKNOWN;
+cbdata_type CbDataList<C>::CBDATA_CbDataList = CBDATA_UNKNOWN;
/** \endcond */
template <class C>
void *
-List<C>::operator new (size_t byteCount)
+CbDataList<C>::operator new (size_t byteCount)
{
- CBDATA_INIT_TYPE(List);
+ CBDATA_INIT_TYPE(CbDataList);
- List<C> *result = cbdataAlloc(List);
+ CbDataList<C> *result = cbdataAlloc(CbDataList);
return result;
}
template <class C>
void
-List<C>::operator delete (void *address)
+CbDataList<C>::operator delete (void *address)
{
cbdataFree(address);
}
template <class C>
-List<C>::List(C const &value) : next(NULL), element (value)
+CbDataList<C>::CbDataList(C const &value) : next(NULL), element (value)
{}
template <class C>
-List<C>::~List()
+CbDataList<C>::~CbDataList()
{
if (next)
delete next;
template <class C>
bool
-List<C>::find (C const &toFind) const
+CbDataList<C>::find (C const &toFind) const
{
- List<C> const *node = NULL;
+ CbDataList<C> const *node = NULL;
for (node = this; node; node = node->next)
if (node->element == toFind)
template <class C>
bool
-List<C>::findAndTune(C const & toFind)
+CbDataList<C>::findAndTune(C const & toFind)
{
- List<C> *prev = NULL;
+ CbDataList<C> *prev = NULL;
- for (List<C> *node = this; node; node = node->
+ for (CbDataList<C> *node = this; node; node = node->
next) {
if (node->element == toFind) {
if (prev != NULL) {
}
template <class C>
-ListContainer<C>::ListContainer() : head (NULL)
+CbDataListContainer<C>::CbDataListContainer() : head (NULL)
{}
template <class C>
-ListContainer<C>::~ListContainer()
+CbDataListContainer<C>::~CbDataListContainer()
{
if (head)
delete head;
}
template <class C>
-List<C> *
-ListContainer<C>::push_back (C const &element)
+CbDataList<C> *
+CbDataListContainer<C>::push_back (C const &element)
{
- List<C> *node = new List<C> (element);
+ CbDataList<C> *node = new CbDataList<C> (element);
if (head) {
- List<C> *tempNode = NULL;
+ CbDataList<C> *tempNode = NULL;
for (tempNode = head; tempNode->next; tempNode = tempNode->next);
tempNode->next = node;
template <class C>
C
-ListContainer<C>::pop_front()
+CbDataListContainer<C>::pop_front()
{
if (head) {
C result = head->element;
- List<C> *node = head;
+ CbDataList<C> *node = head;
head = head->next;
node->next = NULL;
delete node;
template <class C>
bool
-ListContainer<C>::empty() const
+CbDataListContainer<C>::empty() const
{
return head == NULL;
}
#define SQUID_ACLASN_H
#include "ACLData.h"
-#include "List.h"
+#include "CbDataList.h"
#include "ACLStrategised.h"
#include "ACLChecklist.h"
#include "IPAddress.h"
class CacheManager;
-SQUIDCEXTERN int asnMatchIp(List<int> *, IPAddress &);
+SQUIDCEXTERN int asnMatchIp(CbDataList<int> *, IPAddress &);
/// \ingroup ACLAPI
SQUIDCEXTERN void asnInit(void);
static ACLStrategised<IPAddress> SourceRegistryEntry_;
static ACL::Prototype DestinationRegistryProtoype;
static ACLStrategised<IPAddress> DestinationRegistryEntry_;
- List<int> *data;
+ CbDataList<int> *data;
};
MEMPROXY_CLASS_INLINE(ACLASN) /**DOCS_NOSEMI*/
#include "Parsing.h"
/* explicit instantiation required for some systems */
-template cbdata_type List< Range<int> >::CBDATA_List;
+template cbdata_type CbDataList< Range<int> >::CBDATA_CbDataList;
void
ACLIntRange::parse()
ACLIntRange::match(int i)
{
RangeType const toFind (i, i+1);
- ListIterator<RangeType> iter(ranges);
+ CbDataListIterator<RangeType> iter(ranges);
while (!iter.end()) {
const RangeType & element = iter.next();
{
wordlist *W = NULL;
char buf[32];
- ListIterator<RangeType> iter(ranges);
+ CbDataListIterator<RangeType> iter(ranges);
while (!iter.end()) {
const RangeType & element = iter.next();
#define SQUID_ACLINTRANGE_H
#include "ACLData.h"
-#include "List.h"
+#include "CbDataList.h"
#include "Range.h"
/// \ingroup ACLAPI
private:
typedef Range<int> RangeType;
- ListContainer <RangeType> ranges;
+ CbDataListContainer <RangeType> ranges;
};
#endif /* SQUID_ACLINTRANGE_H */
/* explicit instantiation required for some systems */
/// \cond AUTODOCS-IGNORE
-template cbdata_type List<HttpRequestMethod>
-::CBDATA_List;
+template cbdata_type CbDataList<HttpRequestMethod>::CBDATA_CbDataList;
/// \endcond
wordlist *
ACLMethodData::dump()
{
wordlist *W = NULL;
- List<HttpRequestMethod> *data = values;
+ CbDataList<HttpRequestMethod> *data = values;
while (data != NULL) {
wordlistAdd(&W, RequestMethodStr(data->element));
void
ACLMethodData::parse()
{
- List<HttpRequestMethod> **Tail;
+ CbDataList<HttpRequestMethod> **Tail;
char *t = NULL;
for (Tail = &values; *Tail; Tail = &((*Tail)->next));
while ((t = strtokFile())) {
- List<HttpRequestMethod> *q = new List<HttpRequestMethod> (HttpRequestMethod(t, NULL));
+ CbDataList<HttpRequestMethod> *q = new CbDataList<HttpRequestMethod> (HttpRequestMethod(t, NULL));
*(Tail) = q;
Tail = &q->next;
}
#include "ACL.h"
#include "ACLData.h"
-#include "List.h"
+#include "CbDataList.h"
/// \ingroup ACLAPI
class ACLMethodData : public ACLData<HttpRequestMethod>
bool empty() const;
virtual ACLData<HttpRequestMethod> *clone() const;
- List<HttpRequestMethod> *values;
+ CbDataList<HttpRequestMethod> *values;
};
MEMPROXY_CLASS_INLINE(ACLMethodData);
/* explicit instantiation required for some systems */
/// \cond AUTODOCS-IGNORE
-template cbdata_type List<protocol_t>::CBDATA_List;
+template cbdata_type CbDataList<protocol_t>::CBDATA_CbDataList;
/// \endcond
wordlist *
ACLProtocolData::dump()
{
wordlist *W = NULL;
- List<protocol_t> *data = values;
+ CbDataList<protocol_t> *data = values;
while (data != NULL) {
wordlistAdd(&W, ProtocolStr[data->element]);
void
ACLProtocolData::parse()
{
- List<protocol_t> **Tail;
+ CbDataList<protocol_t> **Tail;
char *t = NULL;
for (Tail = &values; *Tail; Tail = &((*Tail)->next));
while ((t = strtokFile())) {
- List<protocol_t> *q = new List<protocol_t> (urlParseProtocol(t));
+ CbDataList<protocol_t> *q = new CbDataList<protocol_t> (urlParseProtocol(t));
*(Tail) = q;
Tail = &q->next;
}
#define SQUID_ACLPROTOCOLDATA_H
#include "ACL.h"
#include "ACLData.h"
-#include "List.h"
+#include "CbDataList.h"
class ACLProtocolData : public ACLData<protocol_t>
{
bool empty() const;
virtual ACLData<protocol_t> *clone() const;
- List<protocol_t> *values;
+ CbDataList<protocol_t> *values;
};
MEMPROXY_CLASS_INLINE(ACLProtocolData);
/* explicit instantiation required for some systems */
-template cbdata_type List<ssl_error_t>::CBDATA_List;
+template cbdata_type CbDataList<ssl_error_t>::CBDATA_CbDataList;
wordlist *
ACLSslErrorData::dump()
{
wordlist *W = NULL;
- List<ssl_error_t> *data = values;
+ CbDataList<ssl_error_t> *data = values;
while (data != NULL) {
wordlistAdd(&W, sslFindErrorString(data->element));
void
ACLSslErrorData::parse()
{
- List<ssl_error_t> **Tail;
+ CbDataList<ssl_error_t> **Tail;
char *t = NULL;
for (Tail = &values; *Tail; Tail = &((*Tail)->next));
while ((t = strtokFile())) {
- List<ssl_error_t> *q = new List<ssl_error_t>(sslParseErrorString(t));
+ CbDataList<ssl_error_t> *q = new CbDataList<ssl_error_t>(sslParseErrorString(t));
*(Tail) = q;
Tail = &q->next;
}
#define SQUID_ACLSSL_ERRORDATA_H
#include "ACL.h"
#include "ACLData.h"
-#include "List.h"
+#include "CbDataList.h"
#include "ssl_support.h"
class ACLSslErrorData : public ACLData<ssl_error_t>
bool empty() const;
virtual ACLData<ssl_error_t> *clone() const;
- List<ssl_error_t> *values;
+ CbDataList<ssl_error_t> *values;
};
MEMPROXY_CLASS_INLINE(ACLSslErrorData);
#include "squid.h"
#include "comm.h"
#include "CommCalls.h"
-#include "List.h"
+#include "CbDataList.h"
class CommRead
{
private:
static PF CloseHandler;
- static DeferredRead popHead(ListContainer<DeferredRead> &deferredReads);
+ static DeferredRead popHead(CbDataListContainer<DeferredRead> &deferredReads);
void kickARead(DeferredRead const &);
void flushReads();
- ListContainer<DeferredRead> deferredReads;
+ CbDataListContainer<DeferredRead> deferredReads;
};
virtual ~StoreSearch() {}
/* not ready yet
- void asList(void (*) (List<StoreEntryPointer), void *cbdata);
+ void asList(void (*) (CbDataList<StoreEntryPointer), void *cbdata);
*/
/* callback the client when a new StoreEntry is available
* or an error occurs
/* explicit instantiation required for some systems */
/// \cond AUTODOCS-IGNORE
-template cbdata_type List<int>::CBDATA_List;
+template cbdata_type CbDataList<int>::CBDATA_CbDataList;
/// \endcond
/**
*/
struct as_info
{
- List<int> *as_number;
+ CbDataList<int> *as_number;
time_t expires; /* NOTUSED */
};
/* PUBLIC */
int
-asnMatchIp(List<int> *data, IPAddress &addr)
+asnMatchIp(CbDataList<int> *data, IPAddress &addr)
{
struct squid_radix_node *rn;
as_info *e;
m_ADDR m_addr;
- List<int> *a = NULL;
- List<int> *b = NULL;
+ CbDataList<int> *a = NULL;
+ CbDataList<int> *b = NULL;
debugs(53, 3, "asnMatchIp: Called for " << addr );
void
ACLASN::prepareForUse()
{
- for (List<int> *i = data; i; i = i->
+ for (CbDataList<int> *i = data; i; i = i->
next)
asnCacheStart(i->element);
}
rtentry_t *e;
struct squid_radix_node *rn;
- List<int> **Tail = NULL;
- List<int> *q = NULL;
+ CbDataList<int> **Tail = NULL;
+ CbDataList<int> *q = NULL;
as_info *asinfo = NULL;
IPAddress mask;
debugs(53, 3, "asnAddNet: Warning: Found a network with multiple AS numbers!");
for (Tail = &asinfo->as_number; *Tail; Tail = &(*Tail)->next);
- q = new List<int> (as_number);
+ q = new CbDataList<int> (as_number);
*(Tail) = q;
e->e_info = asinfo;
}
} else {
- q = new List<int> (as_number);
+ q = new CbDataList<int> (as_number);
asinfo = (as_info *)xmalloc(sizeof(as_info));
asinfo->as_number = q;
rn = squid_rn_addroute(&e->e_addr, &e->e_mask, AS_tree_head, e->e_nodes);
static void
destroyRadixNodeInfo(as_info * e_info)
{
- List<int> *prev = NULL;
- List<int> *data = e_info->as_number;
+ CbDataList<int> *prev = NULL;
+ CbDataList<int> *data = e_info->as_number;
while (data) {
prev = data;
{
StoreEntry *sentry = (StoreEntry *)_sentry;
rtentry_t *e = (rtentry_t *) rn;
- List<int> *q;
+ CbDataList<int> *q;
as_info *asinfo;
char buf[MAX_IPSTRLEN];
IPAddress addr;
{
wordlist *W = NULL;
char buf[32];
- List<int> *ldata = data;
+ CbDataList<int> *ldata = data;
while (ldata != NULL) {
snprintf(buf, sizeof(buf), "%d", ldata->element);
void
ACLASN::parse()
{
- List<int> **curlist = &data;
- List<int> **Tail;
- List<int> *q = NULL;
+ CbDataList<int> **curlist = &data;
+ CbDataList<int> **Tail;
+ CbDataList<int> *q = NULL;
char *t = NULL;
for (Tail = curlist; *Tail; Tail = &((*Tail)->next));
while ((t = strtokFile())) {
- q = new List<int> (atoi(t));
+ q = new CbDataList<int> (atoi(t));
*(Tail) = q;
Tail = &q->next;
}
/* explicit instantiation required for some systems */
/// \cond AUTODOCS-IGNORE
-template cbdata_type List<DeferredRead>::CBDATA_List;
+template cbdata_type CbDataList<DeferredRead>::CBDATA_CbDataList;
/// \endcond
void
DeferredReadManager::delayRead(DeferredRead const &aRead) {
debugs(5, 3, "Adding deferred read on FD " << aRead.theRead.fd);
- List<DeferredRead> *temp = deferredReads.push_back(aRead);
+ CbDataList<DeferredRead> *temp = deferredReads.push_back(aRead);
comm_add_close_handler (aRead.theRead.fd, CloseHandler, temp);
}
if (!cbdataReferenceValid (thecbdata))
return;
- List<DeferredRead> *temp = (List<DeferredRead> *)thecbdata;
+ CbDataList<DeferredRead> *temp = (CbDataList<DeferredRead> *)thecbdata;
temp->element.markCancelled();
}
DeferredRead
-DeferredReadManager::popHead(ListContainer<DeferredRead> &deferredReads) {
+DeferredReadManager::popHead(CbDataListContainer<DeferredRead> &deferredReads) {
assert (!deferredReads.empty());
if (!deferredReads.head->element.cancelled)
void
DeferredReadManager::kickReads(int const count) {
- /* if we had List::size() we could consolidate this and flushReads */
+ /* if we had CbDataList::size() we could consolidate this and flushReads */
if (count < 1) {
flushReads();
void
DeferredReadManager::flushReads() {
- ListContainer<DeferredRead> reads;
+ CbDataListContainer<DeferredRead> reads;
reads = deferredReads;
- deferredReads = ListContainer<DeferredRead>();
+ deferredReads = CbDataListContainer<DeferredRead>();
while (!reads.empty()) {
DeferredRead aRead = popHead(reads);