]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/ctables.h
Use CommandBase::Params instead of std::vector<std::string>.
[user/henk/code/inspircd.git] / include / ctables.h
index 9376dbbcc4df88a2a4761079b27ad541dec90369..c34e4abeb4ab9f1b6336a2b42fa0394068b97daf 100644 (file)
@@ -110,9 +110,11 @@ struct RouteDescriptor
 class CoreExport CommandBase : public ServiceProvider
 {
  public:
+       typedef std::vector<std::string> Params;
+
        /** User flags needed to execute the command or 0
         */
-       char flags_needed;
+       unsigned char flags_needed;
 
        /** Minimum number of parameters command takes
        */
@@ -157,7 +159,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.
@@ -168,14 +170,14 @@ class CoreExport CommandBase : public ServiceProvider
         */
        CommandBase(Module* me, const std::string& cmd, unsigned int minpara = 0, unsigned int maxpara = 0);
 
-       virtual RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
+       virtual RouteDescriptor GetRouting(User* user, const CommandBase::Params& parameters);
 
        /** Encode a parameter for server->server transmission.
         * Used for parameters for which the translation type is TR_CUSTOM.
         * @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.
@@ -219,7 +221,7 @@ class CoreExport Command : public CommandBase
         * @param user The user who issued the command.
         * @return Return CMD_SUCCESS on success, or CMD_FAILURE on failure.
         */
-       virtual CmdResult Handle(const std::vector<std::string>& parameters, User* user) = 0;
+       virtual CmdResult Handle(User* user, const Params& parameters) = 0;
 
        /** Register this object in the CommandParser
         */
@@ -234,12 +236,12 @@ 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);
-       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);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       virtual CmdResult HandleLocal(LocalUser* user, const Params& parameters);
+       virtual CmdResult HandleRemote(RemoteUser* user, const Params& parameters);
+       virtual CmdResult HandleServer(FakeUser* user, const Params& parameters);
 };
 
 /** Shortcut macros for defining translation lists