X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fctables.h;h=c4b5aa3359cd1f95ed25b79e66806a41fa8122e3;hb=90639721625b5da867effc7dd4adec003c1bd3b4;hp=78eb150d94380d5a63968668bcffa0cb07c39579;hpb=73b9d0c5cb02f0ea8350de28bc3687e0af70ea0f;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/ctables.h b/include/ctables.h index 78eb150d9..c4b5aa335 100644 --- a/include/ctables.h +++ b/include/ctables.h @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * Inspire is copyright (C) 2002-2003 ChatSpike-Dev. + * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev. * E-mail: * * @@ -12,42 +12,53 @@ * the file COPYING for details. * * --------------------------------------------------- + */ - $Log$ - Revision 1.1 2003/01/23 19:45:58 brain - Initial revision - - Revision 1.3 2003/01/15 22:47:44 brain - Changed user and channel structs to classes (finally) - - Revision 1.2 2003/01/09 21:09:50 brain - added '/stats M' command +#ifndef __CTABLES_H__ +#define __CTABLES_H__ - Revision 1.1 2003/01/07 01:02:14 brain +#include "inspircd_config.h" +#include "hash_map.h" - definitions for command table types +class userrec; +/*typedef void (handlerfunc) (char**, int, userrec*);*/ - * --------------------------------------------------- +/** A structure that defines a command */ -#include "inspircd_config.h" -#include "inspircd.h" - -#ifndef __CTABLES_H__ -#define __CTABLES_H__ +class command_t +{ + public: + /** Command name + */ + std::string command; + /** User flags needed to execute the command or 0 + */ + char flags_needed; + /** Minimum number of parameters command takes + */ + int min_params; + /** used by /stats m + */ + long use_count; + /** used by /stats m + */ + long total_bytes; + /** used for resource tracking between modules + */ + std::string source; -typedef void (handlerfunc) (char**, int, userrec*); + command_t(const std::string &cmd, char flags, int minpara) : command(cmd), flags_needed(flags), min_params(minpara) + { + use_count = total_bytes = 0; + source = ""; + } -/* a structure that defines a command */ + virtual void Handle(char** parameters, int pcnt, userrec* user) = 0; -struct command_t { - char command[MAXBUF]; /* command name */ - handlerfunc *handler_function; /* handler function as in typedef */ - char flags_needed; /* user flags needed to execute the command or 0 */ - int min_params; /* minimum number of parameters command takes */ - long use_count; /* used by /stats m */ - long total_bytes; /* used by /stats m */ + virtual ~command_t() {} }; -#endif +typedef nspace::hash_map command_table; +#endif