]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/ctables.h
Merge branch 'insp20' into master.
[user/henk/code/inspircd.git] / include / ctables.h
index abf65f56127122f2e742b76592b3b65fdd8f23fe..43a311a6635e6243759cf644f82dc2ae7662fa13 100644 (file)
 
 #pragma once
 
-/** Used to indicate command success codes
- */
+/** Used to indicate the result of trying to execute a command. */
 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_EPERM = 3       /* Command failed because of a permission check */
+       /** The command exists but its execution failed. */
+       CMD_FAILURE = 0,
+
+       /** The command exists and its execution succeeded. */
+       CMD_SUCCESS = 1,
+
+       /* The command does not exist. */
+       CMD_INVALID = 2
 };
 
 /** Flag for commands that are only allowed from servers */
@@ -109,7 +112,7 @@ class CoreExport CommandBase : public ServiceProvider
  public:
        /** User flags needed to execute the command or 0
         */
-       char flags_needed;
+       unsigned char flags_needed;
 
        /** Minimum number of parameters command takes
        */
@@ -154,7 +157,7 @@ class CoreExport CommandBase : public ServiceProvider
 
        /** How many seconds worth of penalty does this command have?
         */
-       int Penalty;
+       unsigned int Penalty;
 
        /** Create a new command.
         * @param me The module which created this command.
@@ -172,7 +175,7 @@ class CoreExport CommandBase : public ServiceProvider
         * @param parameter The parameter to encode. Can be modified in place.
         * @param index The parameter index (0 == first parameter).
         */
-       virtual void EncodeParameter(std::string& parameter, int index);
+       virtual void EncodeParameter(std::string& parameter, unsigned int index);
 
        /** Disable or enable this command.
         * @param setting True to disable the command.
@@ -218,6 +221,10 @@ class CoreExport Command : public CommandBase
         */
        virtual CmdResult Handle(const std::vector<std::string>& parameters, User* user) = 0;
 
+       /** Register this object in the CommandParser
+        */
+       void RegisterService() CXX11_OVERRIDE;
+
        /** Destructor
         * Removes this command from the command parser
         */
@@ -227,9 +234,9 @@ class CoreExport Command : public CommandBase
 class CoreExport SplitCommand : public Command
 {
  public:
-       SplitCommand(Module* me, const std::string &cmd, int minpara = 0, int maxpara = 0)
+       SplitCommand(Module* me, const std::string &cmd, unsigned int minpara = 0, unsigned int maxpara = 0)
                : Command(me, cmd, minpara, maxpara) {}
-       virtual CmdResult Handle(const std::vector<std::string>& parameters, User* user);
+       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
        virtual CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user);
        virtual CmdResult HandleRemote(const std::vector<std::string>& parameters, RemoteUser* user);
        virtual CmdResult HandleServer(const std::vector<std::string>& parameters, FakeUser* user);