added some code & compiler information to cmd_netinfo
[NeonServV5.git] / ChanNode.h
1 #ifndef _ChanNode_h
2 #define _ChanNode_h
3 #include "main.h"
4
5 struct ChanUser;
6 struct trigger_cache;
7
8 #define CHANFLAG_RECEIVED_USERLIST  0x01
9 #define CHANFLAG_REQUESTED_CHANINFO 0x02
10 #define CHANFLAG_CHAN_REGISTERED    0x04
11
12 struct ChanNode {
13     char name[CHANNELLEN+1];
14     char topic[TOPICLEN+1];
15     struct ChanUser *user;
16     unsigned int usercount;
17     unsigned char flags;
18     unsigned int modes;
19     char **mode_str_args;
20     int *mode_int_args;
21     struct BanNode *bans;
22     
23     struct UserNode *chanbot;
24     struct trigger_cache *trigger;
25     int channel_id;
26         
27     struct ChanNode *next;
28 };
29
30 void init_ChanNode();
31 void free_ChanNode();
32 int is_valid_chan(const char *name);
33 struct ChanNode* getChanByName(const char *name);
34 struct ChanNode* addChannel(const char *chan);
35 int getChannelCount();
36 int getChanUserCount();
37 void delChannel(struct ChanNode* chan, int freeChan);
38 void freeChanNode(struct ChanNode* chan);
39 void checkChannelVisibility(struct ChanNode* chan);
40 int isModeSet(struct ChanNode* chan, char modeChar);
41 void* getModeValue(struct ChanNode* chan, char modeChar);
42 void parseModes(struct ChanNode* chan, char *modeStr, char **argv, int argc);
43 void getModeString(struct ChanNode* chan, char *modesStr);
44
45 #endif