From: wessels <> Date: Sat, 9 Aug 1997 10:48:06 +0000 (+0000) Subject: simpler cacheobj implementation; use OpTable of OBJH functions X-Git-Tag: SQUID_3_0_PRE1~4843 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6684fec08092f227bf53d554c0bce344f72208b9;p=thirdparty%2Fsquid.git simpler cacheobj implementation; use OpTable of OBJH functions --- diff --git a/ChangeLog b/ChangeLog index 59adcc21a7..5e33e03650 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,5 @@ + - Simpler cacheobj implementation. + Changes to squid-1.2.alpha5 (): - New configuration system. Everything is generated from diff --git a/src/protos.h b/src/protos.h index 163bf4ac43..71dda84be3 100644 --- a/src/protos.h +++ b/src/protos.h @@ -387,11 +387,6 @@ extern void init_stack _PARAMS((Stack *, int)); extern void stackFreeMemory _PARAMS((Stack *)); extern void stat_init _PARAMS((cacheinfo **, const char *)); -extern void stat_get _PARAMS((const char *req, StoreEntry *)); -extern void log_enable _PARAMS((StoreEntry *)); -extern void info_get _PARAMS((StoreEntry *)); -extern void server_list _PARAMS((StoreEntry *)); -extern void parameter_get _PARAMS((StoreEntry *)); /* To reduce memory fragmentation, we now store the memory version of an * object in fixed size blocks of size PAGE_SIZE and instead of calling @@ -494,7 +489,6 @@ extern void storeDirSwapLog _PARAMS((const StoreEntry *)); extern int storeDirNumber _PARAMS((int fileno)); extern void storeDirUpdateSwapSize _PARAMS((int fn, size_t size, int sign)); extern int storeDirProperFileno _PARAMS((int dirn, int fn)); -extern void storeDirStats _PARAMS((StoreEntry * sentry)); extern const char *getMyHostname _PARAMS((void)); @@ -550,3 +544,14 @@ extern peer_t parseNeighborType _PARAMS((const char *s)); extern void errorSend _PARAMS((int fd, ErrorState *)); extern void errorAppendEntry _PARAMS((StoreEntry *, ErrorState *)); extern void errorInitialize _PARAMS((void)); + +extern OBJH stat_io_get; +extern OBJH stat_objects_get; +extern OBJH stat_vmobjects_get; +extern OBJH stat_utilization_get; +extern OBJH statFiledescriptors; +extern OBJH log_enable; +extern OBJH info_get; +extern OBJH server_list; +extern OBJH parameter_get; +extern OBJH storeDirStats; diff --git a/src/stat.cc b/src/stat.cc index 413f5f9f31..db974c9d65 100644 --- a/src/stat.cc +++ b/src/stat.cc @@ -1,6 +1,6 @@ /* - * $Id: stat.cc,v 1.150 1997/07/28 06:41:03 wessels Exp $ + * $Id: stat.cc,v 1.151 1997/08/09 04:48:09 wessels Exp $ * * DEBUG: section 18 Cache Manager Statistics * AUTHOR: Harvest Derived @@ -131,10 +131,6 @@ static void proto_count _PARAMS((cacheinfo *, protocol_t, log_type)); static void proto_newobject _PARAMS((cacheinfo *, protocol_t, int, int)); static void proto_purgeobject _PARAMS((cacheinfo *, protocol_t, int)); static void proto_touchobject _PARAMS((cacheinfo *, protocol_t, int)); -static void statFiledescriptors _PARAMS((StoreEntry *)); -static void stat_io_get _PARAMS((StoreEntry *)); -static void stat_objects_get _PARAMS((StoreEntry *, int vm_or_not)); -static void stat_utilization_get _PARAMS((cacheinfo *, StoreEntry *, const char *desc)); static int memoryAccounted _PARAMS((void)); #ifdef XMALLOC_STATISTICS @@ -143,13 +139,12 @@ static void info_get_mallstat _PARAMS((int, int, StoreEntry *)); /* process utilization information */ static void -stat_utilization_get(cacheinfo * obj, StoreEntry * sentry, const char *desc) +statUtilization(cacheinfo * obj, StoreEntry * sentry, const char *desc) { protocol_t proto_id; proto_stat *p = &obj->proto_stat_data[PROTO_MAX]; proto_stat *q = NULL; int secs = 0; - secs = (int) (squid_curtime - squid_starttime); storeAppendPrintf(sentry, "{ %s\n", desc); /* } */ strcpy(p->protoname, "TOTAL"); @@ -198,7 +193,14 @@ stat_utilization_get(cacheinfo * obj, StoreEntry * sentry, const char *desc) storeAppendPrintf(sentry, close_bracket); } -static void +void +stat_utilization_get(StoreEntry *e) +{ + statUtilization(HTTPCacheInfo, e, "HTTP"); + statUtilization(ICPCacheInfo, e, "ICP"); +} + +void stat_io_get(StoreEntry * sentry) { int i; @@ -328,14 +330,12 @@ describeTimestamps(const StoreEntry * entry) /* process objects list */ static void -stat_objects_get(StoreEntry * sentry, int vm_or_not) +statObjects(StoreEntry * sentry, int vm_or_not) { StoreEntry *entry = NULL; MemObject *mem; int N = 0; - storeAppendPrintf(sentry, open_bracket); - for (entry = storeGetFirst(); entry != NULL; entry = storeGetNext()) { mem = entry->mem_obj; if (vm_or_not && mem == NULL) @@ -356,40 +356,16 @@ stat_objects_get(StoreEntry * sentry, int vm_or_not) storeAppendPrintf(sentry, close_bracket); } - -/* process a requested object into a manager format */ void -stat_get(const char *req, StoreEntry * sentry) +stat_objects_get(StoreEntry *e) { + statObjects(e, 0); +} - if (strcmp(req, "objects") == 0) { - stat_objects_get(sentry, 0); - } else if (strcmp(req, "vm_objects") == 0) { - stat_objects_get(sentry, 1); - } else if (strcmp(req, "ipcache") == 0) { - stat_ipcache_get(sentry); - } else if (strcmp(req, "fqdncache") == 0) { - fqdnStats(sentry); - } else if (strcmp(req, "dns") == 0) { - dnsStats(sentry); - } else if (strcmp(req, "redirector") == 0) { - redirectStats(sentry); - } else if (strcmp(req, "utilization") == 0) { - stat_utilization_get(HTTPCacheInfo, sentry, "HTTP"); - stat_utilization_get(ICPCacheInfo, sentry, "ICP"); - } else if (strcmp(req, "io") == 0) { - stat_io_get(sentry); - } else if (strcmp(req, "reply_headers") == 0) { - httpReplyHeaderStats(sentry); - } else if (strcmp(req, "filedescriptors") == 0) { - statFiledescriptors(sentry); - } else if (strcmp(req, "netdb") == 0) { - netdbDump(sentry); - } else if (strcmp(req, "storedir") == 0) { - storeDirStats(sentry); - } else if (strcmp(req, "cbdata") == 0) { - cbdataDump(sentry); - } +void +stat_vmobjects_get(StoreEntry *e) +{ + statObjects(e, 1); } void @@ -469,12 +445,11 @@ fdRemoteAddr(const fde * f) return buf; } -static void +void statFiledescriptors(StoreEntry * sentry) { int i; fde *f; - storeAppendPrintf(sentry, open_bracket); storeAppendPrintf(sentry, "{Active file descriptors:}\n"); storeAppendPrintf(sentry, "{%-4s %-6s %-4s %-7s %-7s %-21s %s}\n", diff --git a/src/typedefs.h b/src/typedefs.h index 89b0ab310b..e345652fd7 100644 --- a/src/typedefs.h +++ b/src/typedefs.h @@ -98,3 +98,4 @@ typedef int QS _PARAMS((const void *, const void *)); /* qsort */ typedef void STCB _PARAMS((void *, char *, ssize_t)); /* store callback */ typedef void STABH _PARAMS((void *)); typedef void ERCB _PARAMS((int fd, void *, int size)); +typedef void OBJH _PARAMS((StoreEntry *));