]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/channels.h
Tons more sanity checks and length checks
[user/henk/code/inspircd.git] / include / channels.h
index c9cdd7b31e5409354a7825971314051b1fe1fb21..9f97c3b8b9c3e99c8cdd86f616b6ae34cfa6326b 100644 (file)
@@ -1,25 +1,10 @@
 /*
 
-$Log$
-Revision 1.1  2003/01/23 19:45:58  brain
-Initial revision
-
-Revision 1.7  2003/01/22 00:44:26  brain
-Added documentation comments
-
-Revision 1.6  2003/01/21 21:11:17  brain
-Added documentation
-
-Revision 1.5  2003/01/16 20:11:55  brain
-fixed some ugly pointer bugs (thanks dblack and a|KK|y!)
-
-Revision 1.4  2003/01/15 22:47:44  brain
-Changed user and channel structs to classes (finally)
-
    
 */
 
 #include "inspircd_config.h"
+#include "base.h"
 #include <time.h>
 #include <vector>
 
@@ -29,7 +14,7 @@ Changed user and channel structs to classes (finally)
 /** Holds an entry for a ban list, exemption list, or invite list.
  * This class contains a single element in a channel list, such as a banlist.
  */
-class HostItem
+class HostItem : public classbase
 {
  public:
        time_t set_time;
@@ -68,21 +53,21 @@ class InviteItem : public HostItem
 
 /** Holds a complete ban list
  */
-typedef vector<BanItem>        BanList;
+typedef std::vector<BanItem>   BanList;
 
 /** Holds a complete exempt list
  */
-typedef vector<ExemptItem>     ExemptList;
+typedef std::vector<ExemptItem>        ExemptList;
 
 /** Holds a complete invite list
  */
-typedef vector<InviteItem>     InviteList;
+typedef std::vector<InviteItem>        InviteList;
 
 /** Holds all relevent information for a channel.
  * This class represents a channel, and contains its name, modes, time created, topic, topic set time,
  * etc, and an instance of the BanList type.
  */
-class chanrec
+class chanrec : public classbase
 {
  public:
        /** The channels name.
@@ -147,19 +132,18 @@ class chanrec
        /** The list of all bans set on the channel.
         */
        BanList bans;
+       
+       /** Sets or unsets a custom mode in the channels info
+        */
+       void SetCustomMode(char mode,bool mode_on);
 
+       /** Sets or unsets the parameters for a custom mode in a channels info
+        */
+       void SetCustomModeParam(char mode,char* parameter,bool mode_on);
        /** Creates a channel record and initialises it with default values
         */
-       chanrec()
-       {
-               strcpy(name,"");
-               strcpy(custom_modes,"");
-               strcpy(topic,"");
-               strcpy(setby,"");
-               strcpy(key,"");
-               created = topicset = limit = 0;
-               topiclock = noexternal = inviteonly = moderated = secret = c_private = false;
-       }
+       chanrec();
 
        virtual ~chanrec() { /* stub */ }
 };
@@ -178,7 +162,7 @@ class chanrec
  * a userrec and chanrec class. The uc_modes member holds a bitmask of which privilages the user
  * has on the channel, such as op, voice, etc.
  */
-class ucrec
+class ucrec : public classbase
 {
  public:
        /** Contains a bitmask of the UCMODE_OP ... UCMODE_FOUNDER values.