00001 /* 00002 00003 00004 */ 00005 00006 #include "inspircd_config.h" 00007 #include "base.h" 00008 #include <time.h> 00009 #include <vector> 00010 00011 #ifndef __CHANNELS_H__ 00012 #define __CHANNELS_H__ 00013 00017 class HostItem : public classbase 00018 { 00019 public: 00020 time_t set_time; 00021 char set_by[NICKMAX]; 00022 char data[MAXBUF]; 00023 00024 HostItem() { /* stub */ } 00025 virtual ~HostItem() { /* stub */ } 00026 }; 00027 00028 // banlist is inherited from HostList mainly for readability 00029 // reasons only 00030 00033 class BanItem : public HostItem 00034 { 00035 }; 00036 00037 // same with this... 00038 00041 class ExemptItem : public HostItem 00042 { 00043 }; 00044 00045 // and this... 00046 00049 class InviteItem : public HostItem 00050 { 00051 }; 00052 00053 00056 typedef vector<BanItem> BanList; 00057 00060 typedef vector<ExemptItem> ExemptList; 00061 00064 typedef vector<InviteItem> InviteList; 00065 00070 class chanrec : public classbase 00071 { 00072 public: 00075 char name[CHANMAX]; /* channel name */ 00079 char custom_modes[MAXMODES]; /* modes handled by modules */ 00083 char topic[MAXBUF]; 00086 time_t created; 00090 time_t topicset; 00094 char setby[NICKMAX]; 00095 00099 long limit; 00100 00104 char key[32]; 00105 00108 short int topiclock; 00109 00112 short int noexternal; 00113 00116 short int inviteonly; 00117 00120 short int moderated; 00121 00125 short int secret; 00126 00130 short int c_private; 00131 00134 BanList bans; 00135 00138 chanrec() 00139 { 00140 strcpy(name,""); 00141 strcpy(custom_modes,""); 00142 strcpy(topic,""); 00143 strcpy(setby,""); 00144 strcpy(key,""); 00145 created = topicset = limit = 0; 00146 topiclock = noexternal = inviteonly = moderated = secret = c_private = false; 00147 } 00148 00149 virtual ~chanrec() { /* stub */ } 00150 }; 00151 00152 /* used to hold a channel and a users modes on that channel, e.g. +v, +h, +o 00153 * needs to come AFTER struct chanrec */ 00154 00155 #define UCMODE_OP 1 00156 #define UCMODE_VOICE 2 00157 #define UCMODE_HOP 4 00158 #define UCMODE_PROTECT 8 00159 #define UCMODE_FOUNDER 16 00160 00166 class ucrec : public classbase 00167 { 00168 public: 00172 long uc_modes; 00173 00177 chanrec *channel; 00178 00179 ucrec() { /* stub */ } 00180 virtual ~ucrec() { /* stub */ } 00181 }; 00182 00183 #endif 00184