summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2015-01-24 14:10:38 +0100
committerAttila Molnar <attilamolnar@hush.com>2015-01-24 14:10:38 +0100
commitb127d368e33aa89ed567c438f905bdf3f263891c (patch)
treedd088f1a9087514caebfedf0d224ec9894bc9df6
parentae7b6b9104e8889426a14cbe41704d9816e566f9 (diff)
Move implementation of Command and CommandBase functions into a source file
-rw-r--r--include/ctables.h22
-rw-r--r--src/command_parse.cpp28
2 files changed, 32 insertions, 18 deletions
diff --git a/include/ctables.h b/include/ctables.h
index 024525246..abf65f561 100644
--- a/include/ctables.h
+++ b/include/ctables.h
@@ -163,26 +163,16 @@ class CoreExport CommandBase : public ServiceProvider
* @param maxpara Maximum number of parameters this command may have - extra parameters
* will be tossed into one last space-seperated param.
*/
- CommandBase(Module* me, const std::string& cmd, unsigned int minpara = 0, unsigned int maxpara = 0) :
- ServiceProvider(me, cmd, SERVICE_COMMAND), flags_needed(0), min_params(minpara), max_params(maxpara),
- use_count(0), disabled(false), works_before_reg(false), allow_empty_last_param(true),
- Penalty(1)
- {
- }
+ 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)
- {
- return ROUTE_LOCALONLY;
- }
+ virtual RouteDescriptor GetRouting(User* user, const std::vector<std::string>& 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, int index);
/** Disable or enable this command.
* @param setting True to disable the command.
@@ -219,11 +209,7 @@ class CoreExport Command : public CommandBase
*/
bool force_manual_route;
- Command(Module* me, const std::string& cmd, unsigned int minpara = 0, unsigned int maxpara = 0)
- : CommandBase(me, cmd, minpara, maxpara)
- , force_manual_route(false)
- {
- }
+ Command(Module* me, const std::string& cmd, unsigned int minpara = 0, unsigned int maxpara = 0);
/** Handle the command from a user.
* @param parameters The parameters for the command.
diff --git a/src/command_parse.cpp b/src/command_parse.cpp
index 793569d5b..c93dac65f 100644
--- a/src/command_parse.cpp
+++ b/src/command_parse.cpp
@@ -327,10 +327,38 @@ void CommandParser::RemoveCommand(Command* x)
cmdlist.erase(n);
}
+CommandBase::CommandBase(Module* mod, const std::string& cmd, unsigned int minpara, unsigned int maxpara)
+ : ServiceProvider(mod, cmd, SERVICE_COMMAND)
+ , flags_needed(0)
+ , min_params(minpara)
+ , max_params(maxpara)
+ , use_count(0)
+ , disabled(false)
+ , works_before_reg(false)
+ , allow_empty_last_param(true)
+ , Penalty(1)
+{
+}
+
CommandBase::~CommandBase()
{
}
+void CommandBase::EncodeParameter(std::string& parameter, int index)
+{
+}
+
+RouteDescriptor CommandBase::GetRouting(User* user, const std::vector<std::string>& parameters)
+{
+ return ROUTE_LOCALONLY;
+}
+
+Command::Command(Module* mod, const std::string& cmd, unsigned int minpara, unsigned int maxpara)
+ : CommandBase(mod, cmd, minpara, maxpara)
+ , force_manual_route(false)
+{
+}
+
Command::~Command()
{
ServerInstance->Parser.RemoveCommand(this);