68 unsigned long Hash() {
return keyhash;}
70const char *
Key() {
return keyval;}
74time_t
Time() {
return keytime;}
76void Update(
int newcount, time_t newtime)
78 if (newtime) keytime = newtime;
81int Same(
const unsigned long KeyHash,
const char *KeyVal)
82 {
return keyhash == KeyHash && !strcmp(keyval, KeyVal);}
94 else keyval = strdup(KeyVal);
96 else keydata = KeyData;
105 {
if (keydata && keydata != (T *)keyval
110 if (keyval) free((
void *)keyval);
112 keydata = 0; keyval = 0; keycount = 0;
119unsigned long keyhash;
142T *
Add(
const char *KeyVal, T *KeyData,
const int LifeTime=0,
154T *
Find(
const char *KeyVal, time_t *KeyTime=0);
158int Num() {
return hashnum;}
166T *
Rep(
const char *KeyVal, T *KeyData,
const int LifeTime=0,
168 {
return Add(KeyVal, KeyData, LifeTime,
179T *
Apply(
int (*func)(
const char *, T *,
void *),
void *Arg);
185 XrdOucHash(
int psize = 89,
int size=144,
int load=80);
192 const unsigned long khash,
196unsigned long HashVal(
const char *KeyVal);
XrdOucHash_Item(unsigned long KeyHash, const char *KeyVal, T *KeyData, time_t KeyTime, XrdOucHash_Item< T > *KeyNext, XrdOucHash_Options KeyOpts)
int Same(const unsigned long KeyHash, const char *KeyVal)
XrdOucHash_Item< T > * Next()
void Update(int newcount, time_t newtime)
void SetNext(XrdOucHash_Item< T > *item)
int Del(const char *KeyVal, XrdOucHash_Options opt=Hash_default)
T * Rep(const char *KeyVal, T *KeyData, const int LifeTime=0, XrdOucHash_Options opt=Hash_default)
T * Apply(int(*func)(const char *, T *, void *), void *Arg)
T * Add(const char *KeyVal, T *KeyData, const int LifeTime=0, XrdOucHash_Options opt=Hash_default)
T * Find(const char *KeyVal, time_t *KeyTime=0)