|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 1307 (0x51b) Types: TextFile Names: »misc.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/Src/qmgr/misc.c«
/* misc.c: misc routines required by qmgr */ # ifndef lint static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Src/qmgr/RCS/misc.c,v 5.0 90/09/20 16:21:23 pp Exp Locker: pp $"; # endif /* * $Header: /cs/research/pp/hubris/pp-beta/Src/qmgr/RCS/misc.c,v 5.0 90/09/20 16:21:23 pp Exp Locker: pp $ * * $Log: misc.c,v $ * Revision 5.0 90/09/20 16:21:23 pp * rcsforce : 5.0 public release * */ #include "types.h" int hash (str, n) char *str; int n; { int res = 0; char *cp; for (cp = str; *cp; cp++) { res = 3 * res + *cp; res %= n; } return res; } void cache_set (cp, utct) Cache *cp; struct type_UNIV_UTCTime *utct; { cp -> cachetime = utcqb2time_t (utct); cp -> cacheplus = 0; } void cache_clear (cp) Cache *cp; { cp -> cachetime = cp -> cacheplus = 0; } void cache_inc (cp, factor) Cache *cp; time_t factor; { int rfact; if (cp -> cacheplus < CACHE_MAX) cp -> cacheplus ++; cp -> cachetime = current_time + factor * cp -> cacheplus; /* round up the cache time - helps cluster mta's etc. */ rfact = (factor/10) * cp -> cacheplus; cp -> cachetime += rfact - cp -> cachetime % rfact; } time_t utcqb2time_t (qb) struct qbuf *qb; { char *p = qb2str (qb); UTC ut; time_t t; ut = str2utct(p, strlen (p)); t = utc2time_t (ut); free (p); return t; }