diff libnnchat.h @ 94:6e47426efb6a

Add preliminary userlist data handling functions.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 07 May 2009 06:14:21 +0300
parents acfc4b4bc180
children 218efd2f0641
line wrap: on
line diff
--- a/libnnchat.h	Thu May 07 03:58:42 2009 +0300
+++ b/libnnchat.h	Thu May 07 06:14:21 2009 +0300
@@ -34,11 +34,18 @@
     char *data;
 } nn_editbuf_t;
 
-typedef struct {
+typedef struct _nn_user_t {
     char *name, *encname;
     time_t lastspoke, joined;
+    struct _nn_user_t *next;
 } nn_user_t;
 
+#define NN_NUM_BUCKETS (256)
+
+typedef struct {
+    nn_user_t *buckets[NN_NUM_BUCKETS];
+} nn_userhash_t;
+
 
 #ifdef __WIN32
 const char *hstrerror(int err);
@@ -53,9 +60,12 @@
 BOOL        sendToSocket(const int sock, char *buf, const size_t bufLen);
 BOOL        sendUserMsg(const int sock, const char *user, const char *fmt, ...);
 
-int         addUser(nn_user_t **list, char *encname);
-int         freeUser(nn_user_t *);
-int         freeUserList(nn_user_t *);
+int         addUserToHash(nn_userhash_t **, char *encname);
+void        freeUserHash(nn_userhash_t *);
+void        freeUserList(nn_user_t *);
+nn_user_t * copyUser(nn_user_t *src);
+nn_user_t * findUserEnc(nn_userhash_t *list, char *encname);
+nn_user_t * matchUsersEnc(nn_userhash_t *list, char *encname, int index);
 
 char *      encodeStr1(const char *str);
 char *      decodeStr1(const char *str);