changed Makefile; build all commands as an own file
[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 struct ModeNode;
8
9 #define CHANFLAG_RECEIVED_USERLIST  0x01
10 #define CHANFLAG_REQUESTED_CHANINFO 0x02
11 #define CHANFLAG_CHAN_REGISTERED    0x04
12 #define CHANFLAG_HAVE_INVISIBLES    0x08
13
14 struct ChanNode {
15     char name[CHANNELLEN+1];
16     char topic[TOPICLEN+1];
17     struct ChanUser *user;
18     unsigned int usercount;
19     unsigned char flags;
20     struct ModeNode *modes;
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 int getChanBanCount();
38 void delChannel(struct ChanNode* chan, int freeChan);
39 void freeChanNode(struct ChanNode* chan);
40 void checkChannelVisibility(struct ChanNode* chan);
41
42 #endif