076b7f79d76177472513ee58dd15439d382d75ae
[NeonServV5.git] / src / ChanUser.h
1 #ifndef _ChanUser_h
2 #define _ChanUser_h
3 #include "main.h"
4
5 #define CHANUSERFLAG_OPPED  0x01
6 #define CHANUSERFLAG_VOICED 0x02
7 #define CHANUSERFLAG_INVISIBLE 0x04
8
9 #define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_VOICED)
10
11 struct ChanNode;
12 struct UserNode;
13
14 struct ChanUser {
15     unsigned char flags;
16     struct ChanNode *chan;
17     struct UserNode *user;
18     
19     int chageEvents;
20     time_t changeTime;
21     
22     struct ChanUser *next_user;
23     struct ChanUser *next_chan;
24 };
25
26 struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user);
27 struct ChanUser* addInvisibleChanUser(struct ChanNode *chan, struct UserNode *user);
28 int isUserOnChan(struct UserNode *user, struct ChanNode *chan);
29 struct ChanUser* getChanUser(struct UserNode *user, struct ChanNode *chan);
30 struct ChanUser* getChannelUsers(struct ChanNode *chan, struct ChanUser *last);
31 struct ChanUser* getUserChannels(struct UserNode *user, struct ChanUser *last);
32 void delChanUser(struct ChanUser *chanuser, int freeChanUser);
33 void removeChanUserFromLists(struct ChanUser *chanuser, int remove_from_userlist, int remove_from_channellist, int freeChanUser);
34
35 #endif