33 #include <sys/types.h> 76 void Update(
int newcount, time_t newtime)
81 int Same(
const unsigned long KeyHash,
const char *KeyVal)
94 else keyval = strdup(KeyVal);
142 T *Add(
const char *KeyVal, T *KeyData,
const int LifeTime=0,
154 T *Find(
const char *KeyVal, time_t *KeyTime=0);
158 int Num() {
return hashnum;}
166 T *
Rep(
const char *KeyVal, T *KeyData,
const int LifeTime=0,
168 {
return Add(KeyVal, KeyData, LifeTime,
179 T *Apply(
int (*func)(
const char *, T *,
void *),
void *Arg);
185 XrdOucHash(
int psize = 89,
int size=144,
int load=80);
186 ~XrdOucHash() {
if (hashtable) {Purge(); free(hashtable); hashtable = 0;}}
192 const unsigned long khash,
196 unsigned long HashVal(
const char *KeyVal);
212 #include "XrdOuc/XrdOucHash.icc" int hashload
Definition: XrdOucHash.hh:205
XrdOucHash_Item< T > * Next()
Definition: XrdOucHash.hh:72
T * Rep(const char *KeyVal, T *KeyData, const int LifeTime=0, XrdOucHash_Options opt=Hash_default)
Definition: XrdOucHash.hh:166
XrdOucHash_Options entopts
Definition: XrdOucHash.hh:123
~XrdOucHash()
Definition: XrdOucHash.hh:186
XrdOucHash_Item(unsigned long KeyHash, const char *KeyVal, T *KeyData, time_t KeyTime, XrdOucHash_Item< T > *KeyNext, XrdOucHash_Options KeyOpts)
Definition: XrdOucHash.hh:86
int hashtablesize
Definition: XrdOucHash.hh:202
~XrdOucHash_Item()
Definition: XrdOucHash.hh:103
int prevtablesize
Definition: XrdOucHash.hh:201
time_t Time()
Definition: XrdOucHash.hh:74
Definition: XrdOucHash.hh:55
T * Data()
Definition: XrdOucHash.hh:66
XrdOucHash_Item< T > * next
Definition: XrdOucHash.hh:117
Definition: XrdOucHash.hh:57
Definition: XrdOucHash.hh:53
Definition: XrdOucHash.hh:56
Definition: XrdOucHash.hh:52
void SetNext(XrdOucHash_Item< T > *item)
Definition: XrdOucHash.hh:84
XrdOucHash_Item< T > ** hashtable
Definition: XrdOucHash.hh:200
int Num()
Definition: XrdOucHash.hh:158
Definition: XrdOucHash.hh:51
XrdOucHash_Options
Definition: XrdOucHash.hh:51
int Count()
Definition: XrdOucHash.hh:64
int Same(const unsigned long KeyHash, const char *KeyVal)
Definition: XrdOucHash.hh:81
int hashnum
Definition: XrdOucHash.hh:203
unsigned long Hash()
Definition: XrdOucHash.hh:68
T * keydata
Definition: XrdOucHash.hh:120
const char * Key()
Definition: XrdOucHash.hh:70
const char * keyval
Definition: XrdOucHash.hh:118
time_t keytime
Definition: XrdOucHash.hh:121
Definition: XrdOucHash.hh:61
Definition: XrdOucHash.hh:127
Definition: XrdOucHash.hh:54
void Update(int newcount, time_t newtime)
Definition: XrdOucHash.hh:76
int keycount
Definition: XrdOucHash.hh:122
unsigned long keyhash
Definition: XrdOucHash.hh:119
int hashmax
Definition: XrdOucHash.hh:204