>
> Eventually you will want to either use these types outside of src/
> or replace them with the BSD list macros.
>
> I'd suggest splitting it up into something under the top level dir,
> rather than under src/, to avoid having to shift it twice.
I know. I think it should become part of the planned (post VCS change)
compat or common directories.
This is here just about breaking the dependency stuff out into the current
location of dlink.h and keeping the .cc next to the .h.
> Stick the bulk of the dlink routines in there, and stuff the memPool
> allocated one under src/.
That would be breaking object boundaries. Memory management itself should
be part of common/core later too and the crossover disappears then.
Amos
>
> Adrian
>
>
> On Tue, Mar 04, 2008, Amos Jeffries wrote:
>> Update of cvs.devel.squid-cache.org:/cvsroot/squid/squid3/src
>>
>> Modified Files:
>> Tag: cleanup
>> AuthConfig.h AuthUser.cci AuthUser.h Makefile.am
>> client_side_reply.cc dlink.h globals.h protos.h tools.cc
>> Added Files:
>> Tag: cleanup
>> dlink.cc
>> Log Message:
>> Move dlink* objects into dlink.h and dlink.cc. Plus otehr .h fixes.
>>
>>
>> --- NEW FILE: dlink.cc ---
>> /*
>> * $Id: dlink.cc,v 1.1.2.1 2008/03/04 01:08:47 amosjeffries Exp $
>> */
>> #include "dlink.h"
>>
>> /* dlink are Mem-pooled */
>> #include "MemPool.h"
>> /* for xstrdup() */
>> #include "util.h"
>>
>>
>> dlink_list ClientActiveRequests;
>>
>> MemAllocator *dlink_node_pool = NULL;
>>
>> dlink_node *
>> dlinkNodeNew()
>> {
>> if (dlink_node_pool == NULL)
>> dlink_node_pool = memPoolCreate("Dlink list nodes",
>> sizeof(dlink_node));
>>
>> /* where should we call delete dlink_node_pool;dlink_node_pool =
>> NULL; */
>> return (dlink_node *)dlink_node_pool->alloc();
>> }
>>
>> /** The node needs to be unlinked FIRST */
>> void
>> dlinkNodeDelete(dlink_node * m)
>> {
>> if (m == NULL)
>> return;
>>
>> dlink_node_pool->free(m);
>> }
>>
>> void
>> dlinkAdd(void *data, dlink_node * m, dlink_list * list)
>> {
>> m->data = data;
>> m->prev = NULL;
>> m->next = list->head;
>>
>> if (list->head)
>> list->head->prev = m;
>>
>> list->head = m;
>>
>> if (list->tail == NULL)
>> list->tail = m;
>> }
>>
>> void
>> dlinkAddAfter(void *data, dlink_node * m, dlink_node * n, dlink_list *
>> list)
>> {
>> m->data = data;
>> m->prev = n;
>> m->next = n->next;
>>
>> if (n->next)
>> n->next->prev = m;
>> else {
>> assert(list->tail == n);
>> list->tail = m;
>> }
>>
>> n->next = m;
>> }
>>
>> void
>> dlinkAddTail(void *data, dlink_node * m, dlink_list * list)
>> {
>> m->data = data;
>> m->next = NULL;
>> m->prev = list->tail;
>>
>> if (list->tail)
>> list->tail->next = m;
>>
>> list->tail = m;
>>
>> if (list->head == NULL)
>> list->head = m;
>> }
>>
>> void
>> dlinkDelete(dlink_node * m, dlink_list * list)
>> {
>> if (m->next)
>> m->next->prev = m->prev;
>>
>> if (m->prev)
>> m->prev->next = m->next;
>>
>> if (m == list->head)
>> list->head = m->next;
>>
>> if (m == list->tail)
>> list->tail = m->prev;
>>
>> m->next = m->prev = NULL;
>> }
>>
>> Index: tools.cc
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/tools.cc,v
>> retrieving revision 1.50.4.1
>> retrieving revision 1.50.4.2
>> diff -C2 -d -r1.50.4.1 -r1.50.4.2
>> *** tools.cc 12 Feb 2008 02:48:48 -0000 1.50.4.1
>> --- tools.cc 4 Mar 2008 01:08:47 -0000 1.50.4.2
>> ***************
>> *** 85,90 ****
>> SQUIDCEXTERN void (*failure_notify) (const char *);
>>
>> - MemAllocator *dlink_node_pool = NULL;
>> -
>> void
>> releaseServerSockets(void)
>> --- 85,88 ----
>> ***************
>> *** 1057,1147 ****
>> }
>>
>> - dlink_node *
>> - dlinkNodeNew()
>> - {
>> - if (dlink_node_pool == NULL)
>> - dlink_node_pool = memPoolCreate("Dlink list nodes",
>> sizeof(dlink_node));
>> -
>> - /* where should we call delete dlink_node_pool;dlink_node_pool =
>> NULL; */
>> - return (dlink_node *)dlink_node_pool->alloc();
>> - }
>> -
>> - /* the node needs to be unlinked FIRST */
>> - void
>> - dlinkNodeDelete(dlink_node * m)
>> - {
>> - if (m == NULL)
>> - return;
>> -
>> - dlink_node_pool->free(m);
>> - }
>> -
>> - void
>> - dlinkAdd(void *data, dlink_node * m, dlink_list * list)
>> - {
>> - m->data = data;
>> - m->prev = NULL;
>> - m->next = list->head;
>> -
>> - if (list->head)
>> - list->head->prev = m;
>> -
>> - list->head = m;
>> -
>> - if (list->tail == NULL)
>> - list->tail = m;
>> - }
>> -
>> - void
>> - dlinkAddAfter(void *data, dlink_node * m, dlink_node * n, dlink_list *
>> list)
>> - {
>> - m->data = data;
>> - m->prev = n;
>> - m->next = n->next;
>> -
>> - if (n->next)
>> - n->next->prev = m;
>> - else {
>> - assert(list->tail == n);
>> - list->tail = m;
>> - }
>> -
>> - n->next = m;
>> - }
>> -
>> - void
>> - dlinkAddTail(void *data, dlink_node * m, dlink_list * list)
>> - {
>> - m->data = data;
>> - m->next = NULL;
>> - m->prev = list->tail;
>> -
>> - if (list->tail)
>> - list->tail->next = m;
>> -
>> - list->tail = m;
>> -
>> - if (list->head == NULL)
>> - list->head = m;
>> - }
>> -
>> - void
>> - dlinkDelete(dlink_node * m, dlink_list * list)
>> - {
>> - if (m->next)
>> - m->next->prev = m->prev;
>> -
>> - if (m->prev)
>> - m->prev->next = m->next;
>> -
>> - if (m == list->head)
>> - list->head = m->next;
>> -
>> - if (m == list->tail)
>> - list->tail = m->prev;
>> -
>> - m->next = m->prev = NULL;
>> - }
>> -
>> void
>> kb_incr(kb_t * k, size_t v)
>> --- 1055,1058 ----
>>
>> Index: protos.h
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/protos.h,v
>> retrieving revision 1.95.2.3
>> retrieving revision 1.95.2.4
>> diff -C2 -d -r1.95.2.3 -r1.95.2.4
>> *** protos.h 2 Mar 2008 11:26:58 -0000 1.95.2.3
>> --- protos.h 4 Mar 2008 01:08:47 -0000 1.95.2.4
>> ***************
>> *** 676,686 ****
>>
>> /* tools.c */
>> ! #include "dlink.h"
>> ! SQUIDCEXTERN void dlinkAdd(void *data, dlink_node *, dlink_list *);
>> ! SQUIDCEXTERN void dlinkAddAfter(void *, dlink_node *, dlink_node *,
>> dlink_list *);
>> ! SQUIDCEXTERN void dlinkAddTail(void *data, dlink_node *, dlink_list
>> *);
>> ! SQUIDCEXTERN void dlinkDelete(dlink_node * m, dlink_list * list);
>> ! SQUIDCEXTERN void dlinkNodeDelete(dlink_node * m);
>> ! SQUIDCEXTERN dlink_node *dlinkNodeNew(void);
>>
>> SQUIDCEXTERN void kb_incr(kb_t *, size_t);
>> --- 676,686 ----
>>
>> /* tools.c */
>> ! //UNUSED #include "dlink.h"
>> ! //UNUSED SQUIDCEXTERN void dlinkAdd(void *data, dlink_node *,
>> dlink_list *);
>> ! //UNUSED SQUIDCEXTERN void dlinkAddAfter(void *, dlink_node *,
>> dlink_node *, dlink_list *);
>> ! //UNUSED SQUIDCEXTERN void dlinkAddTail(void *data, dlink_node *,
>> dlink_list *);
>> ! //UNUSED SQUIDCEXTERN void dlinkDelete(dlink_node * m, dlink_list *
>> list);
>> ! //UNUSED SQUIDCEXTERN void dlinkNodeDelete(dlink_node * m);
>> ! //UNUSED SQUIDCEXTERN dlink_node *dlinkNodeNew(void);
>>
>> SQUIDCEXTERN void kb_incr(kb_t *, size_t);
>>
>> Index: client_side_reply.cc
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/client_side_reply.cc,v
>> retrieving revision 1.125.2.2
>> retrieving revision 1.125.2.3
>> diff -C2 -d -r1.125.2.2 -r1.125.2.3
>> *** client_side_reply.cc 19 Feb 2008 11:39:40 -0000 1.125.2.2
>> --- client_side_reply.cc 4 Mar 2008 01:08:47 -0000 1.125.2.3
>> ***************
>> *** 1,3 ****
>> -
>> /*
>> * $Id$
>> --- 1,2 ----
>> ***************
>> *** 34,37 ****
>> --- 33,40 ----
>> */
>>
>> + /* for ClientActiveRequests global */
>> + #include "dlink.h"
>> +
>> + /* old includes without reasons given. */
>> #include "squid.h"
>> #include "client_side_reply.h"
>> ***************
>> *** 42,46 ****
>> #include "HttpRequest.h"
>> #include "forward.h"
>> -
>> #include "clientStream.h"
>> #include "AuthUserRequest.h"
>> --- 45,48 ----
>>
>> Index: AuthConfig.h
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/AuthConfig.h,v
>> retrieving revision 1.3.26.1
>> retrieving revision 1.3.26.2
>> diff -C2 -d -r1.3.26.1 -r1.3.26.2
>> *** AuthConfig.h 27 Feb 2008 04:28:57 -0000 1.3.26.1
>> --- AuthConfig.h 4 Mar 2008 01:08:47 -0000 1.3.26.2
>> ***************
>> *** 1,3 ****
>> -
>> /*
>> * $Id$
>> --- 1,2 ----
>> ***************
>> *** 31,52 ****
>> *
>> */
>> -
>> #ifndef SQUID_AUTHCONFIG_H
>> #define SQUID_AUTHCONFIG_H
>>
>> ! /*
>> * I am the configuration for an auth scheme.
>> * Currently each scheme has only one instance of me,
>> * but this may change.
>> ! */
>> !
>> ! /* This class is treated like a ref counted class.
>> * If the children ever stop being singletons, implement the
>> * ref counting...
>> */
>> -
>> - class AuthUserRequest;
>> -
>> - /// \ingroup AuthAPI
>> class AuthConfig
>> {
>> --- 30,57 ----
>> *
>> */
>> #ifndef SQUID_AUTHCONFIG_H
>> #define SQUID_AUTHCONFIG_H
>>
>> ! class AuthUserRequest;
>> ! class StoreEntry;
>> ! class HttpReply;
>> ! class HttpRequest;
>> ! class CacheManager;
>> !
>> ! /* for http_hdr_type parameters-by-value */
>> ! #include "HttpHeader.h"
>> !
>> !
>> ! /**
>> ! \ingroup AuthAPI
>> ! \par
>> * I am the configuration for an auth scheme.
>> * Currently each scheme has only one instance of me,
>> * but this may change.
>> ! \par
>> ! * This class is treated like a ref counted class.
>> * If the children ever stop being singletons, implement the
>> * ref counting...
>> */
>> class AuthConfig
>> {
>>
>> Index: globals.h
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/globals.h,v
>> retrieving revision 1.33.4.2
>> retrieving revision 1.33.4.3
>> diff -C2 -d -r1.33.4.2 -r1.33.4.3
>> *** globals.h 12 Feb 2008 02:48:48 -0000 1.33.4.2
>> --- globals.h 4 Mar 2008 01:08:47 -0000 1.33.4.3
>> ***************
>> *** 130,134 ****
>> extern int store_hash_buckets; /* 0 */
>> extern hash_table *store_table; /* NULL */
>> ! extern dlink_list ClientActiveRequests;
>> extern int hot_obj_count; /* 0 */
>> extern const int CacheDigestHashFuncCount; /* 4 */
>> --- 130,134 ----
>> extern int store_hash_buckets; /* 0 */
>> extern hash_table *store_table; /* NULL */
>> ! //MOVED:dlink.h extern dlink_list ClientActiveRequests;
>> extern int hot_obj_count; /* 0 */
>> extern const int CacheDigestHashFuncCount; /* 4 */
>>
>> Index: dlink.h
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/dlink.h,v
>> retrieving revision 1.1
>> retrieving revision 1.1.48.1
>> diff -C2 -d -r1.1 -r1.1.48.1
>> *** dlink.h 23 Apr 2006 11:27:37 -0000 1.1
>> --- dlink.h 4 Mar 2008 01:08:47 -0000 1.1.48.1
>> ***************
>> *** 1,3 ****
>> -
>> /*
>> * $Id$
>> --- 1,2 ----
>> ***************
>> *** 31,35 ****
>> *
>> */
>> -
>> #ifndef SQUID_DLINK_H
>> #define SQUID_DLINK_H
>> --- 30,33 ----
>> ***************
>> *** 48,52 ****
>> };
>>
>> ! struct _dlink_list
>> {
>> dlink_node *head;
>> --- 46,50 ----
>> };
>>
>> ! struct dlink_list
>> {
>> dlink_node *head;
>> ***************
>> *** 54,60 ****
>> };
>>
>> ! class dlink_node;
>>
>> ! typedef struct _dlink_list dlink_list;
>>
>> #endif /* SQUID_DLINK_H */
>> --- 52,66 ----
>> };
>>
>> ! /* mported form globals.h */
>> ! extern dlink_list ClientActiveRequests;
>>
>> ! /* imported directly from protos.h */
>> !
>> ! SQUIDCEXTERN void dlinkAdd(void *data, dlink_node *, dlink_list *);
>> ! SQUIDCEXTERN void dlinkAddAfter(void *, dlink_node *, dlink_node *,
>> dlink_list *);
>> ! SQUIDCEXTERN void dlinkAddTail(void *data, dlink_node *, dlink_list
>> *);
>> ! SQUIDCEXTERN void dlinkDelete(dlink_node * m, dlink_list * list);
>> ! SQUIDCEXTERN void dlinkNodeDelete(dlink_node * m);
>> ! SQUIDCEXTERN dlink_node *dlinkNodeNew(void);
>>
>> #endif /* SQUID_DLINK_H */
>>
>> Index: AuthUser.h
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/AuthUser.h,v
>> retrieving revision 1.6.4.2
>> retrieving revision 1.6.4.3
>> diff -C2 -d -r1.6.4.2 -r1.6.4.3
>> *** AuthUser.h 27 Feb 2008 04:28:57 -0000 1.6.4.2
>> --- AuthUser.h 4 Mar 2008 01:08:47 -0000 1.6.4.3
>> ***************
>> *** 35,41 ****
>> #define SQUID_AUTHUSER_H
>>
>> - #include "IPAddress.h"
>> -
>> class AuthUserRequest;
>>
>> /**
>> --- 35,47 ----
>> #define SQUID_AUTHUSER_H
>>
>> class AuthUserRequest;
>> + class AuthConfig;
>> + class AuthUserHashPointer;
>> +
>> + /* for auth_type_t */
>> + #include "enums.h"
>> +
>> + #include "IPAddress.h"
>> + #include "dlink.h"
>>
>> /**
>> ***************
>> *** 60,64 ****
>> AuthConfig *config;
>> /** we only have one username associated with a given auth_user
>> struct */
>> ! auth_user_hash_pointer *usernamehash;
>> /** we may have many proxy-authenticate strings that decode to the
>> same user */
>> dlink_list proxy_auth_list;
>> --- 66,70 ----
>> AuthConfig *config;
>> /** we only have one username associated with a given auth_user
>> struct */
>> ! AuthUserHashPointer *usernamehash;
>> /** we may have many proxy-authenticate strings that decode to the
>> same user */
>> dlink_list proxy_auth_list;
>>
>> Index: Makefile.am
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/Makefile.am,v
>> retrieving revision 1.138.2.7
>> retrieving revision 1.138.2.8
>> diff -C2 -d -r1.138.2.7 -r1.138.2.8
>> *** Makefile.am 27 Feb 2008 04:28:58 -0000 1.138.2.7
>> --- Makefile.am 4 Mar 2008 01:08:47 -0000 1.138.2.8
>> ***************
>> *** 480,483 ****
>> --- 480,484 ----
>> $(DISKIO_SOURCE) \
>> dlink.h \
>> + dlink.cc \
>> $(DNSSOURCE) \
>> enums.h \
>> ***************
>> *** 817,820 ****
>> --- 818,823 ----
>> $(DELAY_POOL_SOURCE) \
>> disk.cc \
>> + dlink.h \
>> + dlink.cc \
>> $(DNSSOURCE) \
>> enums.h \
>>
>> Index: AuthUser.cci
>> ===================================================================
>> RCS file: /cvsroot/squid/squid3/src/AuthUser.cci,v
>> retrieving revision 1.3
>> retrieving revision 1.3.26.1
>> diff -C2 -d -r1.3 -r1.3.26.1
>> *** AuthUser.cci 9 May 2007 15:50:34 -0000 1.3
>> --- AuthUser.cci 4 Mar 2008 01:08:47 -0000 1.3.26.1
>> ***************
>> *** 1,3 ****
>> -
>> /*
>> * $Id$
>> --- 1,2 ----
>> ***************
>> *** 35,38 ****
>> --- 34,42 ----
>> */
>>
>> + /* for assert() */
>> + #include "assert.h"
>> + /* for xstrdup() */
>> + #include "util.h"
>> +
>> char const *
>> AuthUser::username () const
>
Received on Mon Mar 03 2008 - 19:53:56 MST
This archive was generated by hypermail pre-2.1.9 : Tue Apr 01 2008 - 13:00:10 MDT