Add macro to calculate a hash from a part of the message id
[citadel.git] / libcitadel / lib / libcitadel.h
index 9d251ad83360dccbbb244f46489b4e3c666cf849..366b8a62c8ce977ce0598403a32061f197867c6f 100644 (file)
@@ -515,6 +515,7 @@ typedef long (*HashFunc)(const char *Str, long Len);
 typedef void (*TransitionFunc) (void *Item1, void *Item2, int Odd);
 typedef const char* (*PrintHashDataFunc) (const char *Key, void *Item, int Odd);
 
+long FourHash(const char *key, long length);
 long Flathash(const char *str, long len);
 long lFlathash(const char *str, long len);
 #define IKEY(a) (const char*) &a, sizeof(a)
@@ -676,6 +677,7 @@ extern ConstStr RoomNetCfgStrs[maxRoomNetCfg];
 
 /* a nice consistent place to define how we turn a message id into a thread id hash */
 #define ThreadIdHash(Buf) abs(HashLittle(ChrPtr(Buf), StrLength(Buf)))
+#define ThreadIdHashOffset(Buf, Offset) abs(HashLittle(ChrPtr(Buf) + Offset, StrLength(Buf)-Offset))
 
 #ifdef __cplusplus
 extern "C" {