tried to reorder the program structure and build process
[NeonServV5.git] / src / ChanUser.h
diff --git a/src/ChanUser.h b/src/ChanUser.h
new file mode 100644 (file)
index 0000000..076b7f7
--- /dev/null
@@ -0,0 +1,35 @@
+#ifndef _ChanUser_h
+#define _ChanUser_h
+#include "main.h"
+
+#define CHANUSERFLAG_OPPED  0x01
+#define CHANUSERFLAG_VOICED 0x02
+#define CHANUSERFLAG_INVISIBLE 0x04
+
+#define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_VOICED)
+
+struct ChanNode;
+struct UserNode;
+
+struct ChanUser {
+    unsigned char flags;
+    struct ChanNode *chan;
+    struct UserNode *user;
+    
+    int chageEvents;
+    time_t changeTime;
+    
+    struct ChanUser *next_user;
+    struct ChanUser *next_chan;
+};
+
+struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user);
+struct ChanUser* addInvisibleChanUser(struct ChanNode *chan, struct UserNode *user);
+int isUserOnChan(struct UserNode *user, struct ChanNode *chan);
+struct ChanUser* getChanUser(struct UserNode *user, struct ChanNode *chan);
+struct ChanUser* getChannelUsers(struct ChanNode *chan, struct ChanUser *last);
+struct ChanUser* getUserChannels(struct UserNode *user, struct ChanUser *last);
+void delChanUser(struct ChanUser *chanuser, int freeChanUser);
+void removeChanUserFromLists(struct ChanUser *chanuser, int remove_from_userlist, int remove_from_channellist, int freeChanUser);
+
+#endif
\ No newline at end of file