Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

channels.h

Go to the documentation of this file.
00001 /*
00002 
00003    
00004 */
00005 
00006 #include "inspircd_config.h"
00007 #include "base.h"
00008 #include <time.h>
00009 #include <vector>
00010 #include <string>
00011 
00012 #ifndef __CHANNELS_H__
00013 #define __CHANNELS_H__
00014 
00018 class HostItem : public classbase
00019 {
00020  public:
00021         time_t set_time;
00022         char set_by[NICKMAX];
00023         char data[MAXBUF];
00024 
00025         HostItem() { /* stub */ }
00026         virtual ~HostItem() { /* stub */ }
00027 };
00028 
00029 // banlist is inherited from HostList mainly for readability
00030 // reasons only
00031 
00034 class BanItem : public HostItem
00035 {
00036 };
00037 
00038 // same with this...
00039 
00042 class ExemptItem : public HostItem
00043 {
00044 };
00045 
00046 // and this...
00047 
00050 class InviteItem : public HostItem
00051 {
00052 };
00053 
00054 
00059 class ModeParameter : public classbase
00060 {
00061  public:
00062         char mode;
00063         char parameter[MAXBUF];
00064         char channel[CHANMAX];
00065 };
00066 
00069 typedef std::vector<BanItem>    BanList;
00070 
00073 typedef std::vector<ExemptItem> ExemptList;
00074 
00077 typedef std::vector<InviteItem> InviteList;
00078 
00083 class chanrec : public Extensible
00084 {
00085  public:
00088         char name[CHANMAX]; /* channel name */
00092         char custom_modes[MAXMODES];     /* modes handled by modules */
00093         
00097         char topic[MAXBUF];
00100         time_t created;
00104         time_t topicset;
00108         char setby[NICKMAX];
00109 
00113         long limit;
00114         
00118         char key[32];
00119         
00122         short int topiclock;
00123         
00126         short int noexternal;
00127         
00130         short int inviteonly;
00131         
00134         short int moderated;
00135         
00139         short int secret;
00140         
00144         short int c_private;
00145         
00148         BanList bans;
00149         
00152         void SetCustomMode(char mode,bool mode_on);
00153 
00156         void SetCustomModeParam(char mode,char* parameter,bool mode_on);
00157  
00160         bool IsCustomModeSet(char mode);
00161 
00168         std::string GetModeParameter(char mode);
00169 
00172         chanrec();
00173 
00174         virtual ~chanrec() { /* stub */ }
00175 };
00176 
00177 /* used to hold a channel and a users modes on that channel, e.g. +v, +h, +o
00178  * needs to come AFTER struct chanrec */
00179 
00180 #define UCMODE_OP      1
00181 #define UCMODE_VOICE   2
00182 #define UCMODE_HOP     4
00183 #define UCMODE_PROTECT 8
00184 #define UCMODE_FOUNDER 16
00185  
00191 class ucrec : public classbase
00192 {
00193  public:
00197         long uc_modes;
00198         
00202         chanrec *channel;
00203 
00204         ucrec() { /* stub */ }
00205         virtual ~ucrec() { /* stub */ }
00206 };
00207 
00208 #endif
00209 

Generated on Sun May 2 00:09:18 2004 for InspIRCd by doxygen1.3-rc3