/*
-$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>
/** 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;
/** 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.
/** 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 */ }
};
* 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.