]> code.citadel.org Git - citadel.git/blobdiff - libcitadel/lib/libcitadel.h
* Allow hashiterator to do bigger steps than 1 and to go reverse
[citadel.git] / libcitadel / lib / libcitadel.h
index 59316a21f795c636dada3aa4f41d0a1f7a5c899a..cff82af47d738c3d2a60061781a1f4369f3de898 100644 (file)
@@ -212,6 +212,12 @@ void the_mime_parser(char *partnum,
 
 typedef struct StrBuf StrBuf;
 
+typedef struct _ConstStr {
+       const char *Key;
+       long len;
+}ConstStr;
+
+
 StrBuf* NewStrBuf(void);
 StrBuf* NewStrBufDup(const StrBuf *CopyMe);
 StrBuf* NewStrBufPlain(const char* ptr, int nChars);
@@ -384,6 +390,9 @@ typedef int (*HashFunc)(const char *Str, long Len);
 typedef void (*TransitionFunc) (void *Item1, void *Item2, int Odd);
 typedef void (*PrintHashDataFunc) (const char *Key, void *Item, int Odd);
 
+int Flathash(const char *str, long len);
+#define IKEY(a) (const char*)(&((int)a)), sizeof(int)
+
 HashList *NewHash(int Uniq, HashFunc F);
 void DeleteHash(HashList **Hash);
 void HDeleteHash(void *vHash);
@@ -393,7 +402,8 @@ int GetKey(HashList *Hash, char *HKey, long HKLen, void **Data);
 int GetHashKeys(HashList *Hash, char ***List);
 int dbg_PrintHash(HashList *Hash, PrintHashContent first, PrintHashContent Second);
 int PrintHash(HashList *Hash, TransitionFunc Trans, PrintHashDataFunc PrintEntry);
-HashPos *GetNewHashPos(void);
+HashPos *GetNewHashPos(HashList *Hash, int StepWidth);
+int GetHashPosCounter(HashPos *At);
 void DeleteHashPos(HashPos **DelMe);
 int GetNextHashPos(HashList *Hash, HashPos *At, long *HKLen, const char **HashKey, void **Data);
 void SortByHashKey(HashList *Hash, int Order);