]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/ctables.h
'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are auto skipp...
[user/henk/code/inspircd.git] / include / ctables.h
index e8a3337fd2b6e23959ff7988931a7835bd2cd9ac..d8d76100e470788b32d2cfeed24e8035acb4ea9c 100644 (file)
@@ -1,172 +1 @@
-/*       +------------------------------------+
- *       | Inspire Internet Relay Chat Daemon |
- *       +------------------------------------+
- *
- *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
- * See: http://www.inspircd.org/wiki/index.php/Credits
- *
- * This program is free but copyrighted software; see
- *            the file COPYING for details.
- *
- * ---------------------------------------------------
- */
-#ifndef __CTABLES_H__
-#define __CTABLES_H__
-
-
-#include "inspircd_config.h"
-#include "hash_map.h"
-#include "base.h"
-
-/* Forward declarations - required */
-class userrec;
-class InspIRCd;
-
-/** Used to indicate command success codes
- */
-enum CmdResult
-{
-       CMD_FAILURE = 0,        /* Command exists, but failed */
-       CMD_SUCCESS = 1,        /* Command exists, and succeeded */
-       CMD_INVALID = 2,        /* Command doesnt exist at all! */
-       CMD_USER_DELETED = 3    /* User was deleted - DEPRECIATED */
-};
-
-/** For commands which should not be replicated to other
- * servers, we usually return CMD_FAILURE. this isnt readable,
- * so we define this alias for CMD_FAILURE called
- * CMD_LOCALONLY, which of course does the same thing but is
- * much more readable.
- */
-#define CMD_LOCALONLY CMD_FAILURE
-
-
-/** A structure that defines a command. Every command available
- * in InspIRCd must be defined as derived from command_t.
- */
-class CoreExport command_t : public Extensible
-{
- protected:
-       /** Owner/Creator object
-        */
-       InspIRCd* ServerInstance;
- 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
-        */
-       float total_bytes;
-       /** used for resource tracking between modules
-        */
-       std::string source;
-       /** True if the command is disabled to non-opers
-        */
-       bool disabled;
-       /** True if the command can be issued before registering
-        */
-       bool works_before_reg;
-       /** Syntax string for the command, displayed if non-empty string.
-        * This takes place of the text in the 'not enough parameters' numeric.
-        */
-       std::string syntax;
-
-       /** Create a new command.
-        * @param Instance Pointer to creator class
-        * @param cmd Command name. This must be UPPER CASE.
-        * @param flags User modes required to execute the command.
-        * For oper only commands, set this to 'o', otherwise use 0.
-        * @param minpara Minimum parameters required for the command.
-        * @param before_reg If this is set to true, the command will
-        * be allowed before the user is 'registered' (has sent USER,
-        * NICK, optionally PASS, and been resolved).
-        */
-       command_t(InspIRCd* Instance, const std::string &cmd, char flags, int minpara, int before_reg = false) : ServerInstance(Instance), command(cmd), flags_needed(flags), min_params(minpara), disabled(false), works_before_reg(before_reg)
-       {
-               use_count = 0;
-               total_bytes = 0;
-               source = "<core>";
-               syntax = "";
-       }
-
-       /** Handle the command from a user.
-        * @param parameters The parameters for the command.
-        * @param pcnt The number of parameters available in 'parameters'
-        * @param user The user who issued the command.
-        * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure.
-        * If the command succeeds but should remain local to this server,
-        * return CMD_LOCALONLY.
-        */
-       virtual CmdResult Handle(const char** parameters, int pcnt, userrec* user) = 0;
-
-       /** Handle an internal request from another command, the core, or a module
-        * @param Command ID
-        * @param Zero or more parameters, whos form is specified by the command ID.
-        * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure.
-        * If the command succeeds but should remain local to this server,
-        * return CMD_LOCALONLY.
-        */
-       virtual CmdResult HandleInternal(const unsigned int id, const std::deque<classbase*> &params)
-       {
-               return CMD_INVALID;
-       }
-
-       /** Handle the command from a server.
-        * Not currently used in this version of InspIRCd.
-        * @param parameters The parameters given
-        * @param pcnt The number of parameters available
-        * @param servername The server name which issued the command
-        * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure.
-        * If the command succeeds but should remain local to this server,
-        * return CMD_LOCALONLY.
-        */
-       virtual CmdResult HandleServer(const char** parameters, int pcnt, const std::string &servername)
-       {
-               return CMD_INVALID;
-       }
-
-       /** Disable or enable this command.
-        * @param setting True to disable the command.
-        */
-       void Disable(bool setting)
-       {
-               disabled = setting;
-       }
-
-       /** Obtain this command's disable state.
-        * @return true if the command is currently disabled
-        * (disabled commands can be used only by operators)
-        */
-       bool IsDisabled()
-       {
-               return disabled;
-       }
-
-       /** @return true if the command works before registration.
-        */
-       bool WorksBeforeReg()
-       {
-               return works_before_reg;
-       }
-
-       /** Standard constructor gubbins
-        */
-       virtual ~command_t() {}
-};
-
-/** A hash of commands used by the core
- */
-typedef nspace::hash_map<std::string,command_t*> command_table;
-
-#endif
-
+/*       +------------------------------------+\r *       | Inspire Internet Relay Chat Daemon |\r *       +------------------------------------+\r *\r *  InspIRCd: (C) 2002-2007 InspIRCd Development Team\r * See: http://www.inspircd.org/wiki/index.php/Credits\r *\r * This program is free but copyrighted software; see\r *            the file COPYING for details.\r *\r * ---------------------------------------------------\r */\r \r#ifndef __CTABLES_H__\r#define __CTABLES_H__\r\r\r#include "inspircd_config.h"\r#include "hash_map.h"\r#include "base.h"\r\r/* Forward declarations - required */\rclass userrec;\rclass InspIRCd;\r\r/** Used to indicate command success codes\r */\renum CmdResult\r{\r        CMD_FAILURE = 0,        /* Command exists, but failed */\r       CMD_SUCCESS = 1,        /* Command exists, and succeeded */\r    CMD_INVALID = 2,        /* Command doesnt exist at all! */\r     CMD_USER_DELETED = 3    /* User was deleted - DEPRECIATED */\r};\r\r/** For commands which should not be replicated to other\r * servers, we usually return CMD_FAILURE. this isnt readable,\r * so we define this alias for CMD_FAILURE called\r * CMD_LOCALONLY, which of course does the same thing but is\r * much more readable.\r */\r#define CMD_LOCALONLY CMD_FAILURE\r\r\r/** A structure that defines a command. Every command available\r * in InspIRCd must be defined as derived from command_t.\r */\rclass CoreExport command_t : public Extensible\r{\r protected:\r      /** Owner/Creator object\r        */\r    InspIRCd* ServerInstance;\r public:\r     /** Command name\r       */\r      std::string command;\r  /** User flags needed to execute the command or 0\r       */\r    char flags_needed;\r     /** Minimum number of parameters command takes\r */\r     int min_params;\r        /** used by /stats m\r    */\r    long use_count;\r        /** used by /stats m\r    */\r    float total_bytes;\r     /** used for resource tracking between modules\r  */\r    std::string source;\r    /** True if the command is disabled to non-opers\r        */\r    bool disabled;\r /** True if the command can be issued before registering\r        */\r    bool works_before_reg;\r /** Syntax string for the command, displayed if non-empty string.\r       * This takes place of the text in the 'not enough parameters' numeric.\r         */\r    std::string syntax;\r\r   /** Create a new command.\r       * @param Instance Pointer to creator class\r     * @param cmd Command name. This must be UPPER CASE.\r    * @param flags User modes required to execute the command.\r     * For oper only commands, set this to 'o', otherwise use 0.\r    * @param minpara Minimum parameters required for the command.\r  * @param before_reg If this is set to true, the command will\r   * be allowed before the user is 'registered' (has sent USER,\r   * NICK, optionally PASS, and been resolved).\r   */\r    command_t(InspIRCd* Instance, const std::string &cmd, char flags, int minpara, int before_reg = false) : ServerInstance(Instance), command(cmd), flags_needed(flags), min_params(minpara), disabled(false), works_before_reg(before_reg)\r       {\r              use_count = 0;\r         total_bytes = 0;\r               source = "<core>";\r             syntax = "";\r   }\r\r     /** Handle the command from a user.\r     * @param parameters The parameters for the command.\r    * @param pcnt The number of parameters available in 'parameters'\r       * @param user The user who issued the command.\r         * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure.\r    * If the command succeeds but should remain local to this server,\r      * return CMD_LOCALONLY.\r        */\r    virtual CmdResult Handle(const char** parameters, int pcnt, userrec* user) = 0;\r\r       /** Handle an internal request from another command, the core, or a module\r      * @param Command ID\r    * @param Zero or more parameters, whos form is specified by the command ID.\r    * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure.\r    * If the command succeeds but should remain local to this server,\r      * return CMD_LOCALONLY.\r        */\r    virtual CmdResult HandleInternal(const unsigned int id, const std::deque<classbase*> &params)\r  {\r              return CMD_INVALID;\r    }\r\r     /** Handle the command from a server.\r   * Not currently used in this version of InspIRCd.\r      * @param parameters The parameters given\r       * @param pcnt The number of parameters available\r       * @param servername The server name which issued the command\r   * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure.\r    * If the command succeeds but should remain local to this server,\r      * return CMD_LOCALONLY.\r        */\r    virtual CmdResult HandleServer(const char** parameters, int pcnt, const std::string &servername)\r       {\r              return CMD_INVALID;\r    }\r\r     /** Disable or enable this command.\r     * @param setting True to disable the command.\r  */\r    void Disable(bool setting)\r     {\r              disabled = setting;\r    }\r\r     /** Obtain this command's disable state.\r        * @return true if the command is currently disabled\r    * (disabled commands can be used only by operators)\r    */\r    bool IsDisabled()\r      {\r              return disabled;\r       }\r\r     /** @return true if the command works before registration.\r      */\r    bool WorksBeforeReg()\r  {\r              return works_before_reg;\r       }\r\r     /** Standard constructor gubbins\r        */\r    virtual ~command_t() {}\r};\r\r/** A hash of commands used by the core\r */\rtypedef nspace::hash_map<std::string,command_t*> command_table;\r\r#endif\r\r
\ No newline at end of file