From e68ad84667d5aa80745609f1239d1a1eeb050fec Mon Sep 17 00:00:00 2001 From: randomdan Date: Tue, 31 Dec 2013 10:49:12 +0000 Subject: Tidy up the code for adding a help option --- project2/basics/options/showHelp.cpp | 7 +++++++ project2/basics/options/showHelp.h | 7 +++---- project2/cgi/testCgi.cpp | 2 ++ project2/console/consoleAppEngine.cpp | 3 +-- project2/daemon/p2daemonAppEngine.cpp | 2 +- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/project2/basics/options/showHelp.cpp b/project2/basics/options/showHelp.cpp index feabd45..acdede6 100644 --- a/project2/basics/options/showHelp.cpp +++ b/project2/basics/options/showHelp.cpp @@ -2,6 +2,7 @@ #include #include #include +#include void ShowHelpComponent::onConfigLoad() { @@ -20,6 +21,12 @@ void ShowHelpComponent::outputOptions(const Options * options) const } } +Options::TargetPtr +ShowHelpComponent::Option() +{ + return new OptionFlagSet(&showHelp); +} + bool ShowHelpComponent::showHelp; DECLARE_COMPONENT("ShowHelpComponent", ShowHelpComponent); diff --git a/project2/basics/options/showHelp.h b/project2/basics/options/showHelp.h index e1b95ef..21eec95 100644 --- a/project2/basics/options/showHelp.h +++ b/project2/basics/options/showHelp.h @@ -2,16 +2,15 @@ #define SHOWHELP_H #include - -class Options; +#include class ShowHelpComponent : public ComponentLoader { public: void onConfigLoad(); + static Options::TargetPtr Option(); + private: void outputOptions(const Options * options) const; - - public: static bool showHelp; }; diff --git a/project2/cgi/testCgi.cpp b/project2/cgi/testCgi.cpp index e842958..58b823f 100644 --- a/project2/cgi/testCgi.cpp +++ b/project2/cgi/testCgi.cpp @@ -7,6 +7,7 @@ #include "../cli/claOptions.h" #include "cgiRequestContext.h" #include "cgiAppEngine.h" +#include #define TESTOPT(name, def, desc) \ (name, Options::value(optStore().insert(OptStore::value_type(name, StrPtr(new std::string()))).first->second.get(), def), desc) @@ -120,6 +121,7 @@ TESTOPT("HTTPS", "No", "HTTPS?") TESTOPT("HTTP_IF_MODIFIED_SINCE", "", "Client cached copy timestamp") ("urlListFile", Options::value(&urlListFile, ""), "Load URL list from this file") ("runCount", Options::value(&runCount, 1), "Repeat run this many times") +("help", ShowHelpComponent::Option(), "Print usage and exit")("h") END_OPTIONS(TestInput); int diff --git a/project2/console/consoleAppEngine.cpp b/project2/console/consoleAppEngine.cpp index 8aa4fc0..d2d70c6 100644 --- a/project2/console/consoleAppEngine.cpp +++ b/project2/console/consoleAppEngine.cpp @@ -8,7 +8,6 @@ #include "viewHost.h" #include "taskHost.h" #include "scriptLoader.h" -#include #include #include #include @@ -19,7 +18,7 @@ StaticMessageException(InvalidScriptName, "Script name should be group/name"); SimpleMessageException(UnknownPlatformAlias); DECLARE_OPTIONS(ConsoleApplicationEngine, "Console options") -("help", new OptionFlagSet(&ShowHelpComponent::showHelp), +("help", ShowHelpComponent::Option(), "Print usage and exit")("h") ("console.platform", Options::value(&reqPlatform), "Platform")("p") diff --git a/project2/daemon/p2daemonAppEngine.cpp b/project2/daemon/p2daemonAppEngine.cpp index 908b2b7..b48b75b 100644 --- a/project2/daemon/p2daemonAppEngine.cpp +++ b/project2/daemon/p2daemonAppEngine.cpp @@ -23,7 +23,7 @@ SimpleMessageException(NoSuchUser); SimpleMessageException(NoSuchGroup); DECLARE_OPTIONS(DaemonAppEngine, "Project2 Daemon options") -("help", new OptionFlagSet(&ShowHelpComponent::showHelp), +("help", ShowHelpComponent::Option(), "Print usage and exit")("h") ("daemon.type", Options::value(&daemonType), "The core daemon module to run") ("daemon.platform", Options::value(&reqPlatform), "Platform") -- cgit v1.2.3