summaryrefslogtreecommitdiff
path: root/src/mongo/util/options_parser/options_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/util/options_parser/options_parser.h')
-rw-r--r--src/mongo/util/options_parser/options_parser.h153
1 files changed, 77 insertions, 76 deletions
diff --git a/src/mongo/util/options_parser/options_parser.h b/src/mongo/util/options_parser/options_parser.h
index 8e277f25352..9c3752f1660 100644
--- a/src/mongo/util/options_parser/options_parser.h
+++ b/src/mongo/util/options_parser/options_parser.h
@@ -36,87 +36,88 @@
namespace mongo {
namespace optionenvironment {
- class Environment;
- class OptionSection;
- class Value;
+class Environment;
+class OptionSection;
+class Value;
- /** Handles parsing of the command line as well as YAML and INI config files. Takes an
- * OptionSection instance that describes the allowed options, parses argv (env not yet
- * supported), and populates an Environment with the results.
- *
- * Usage:
- *
- * namespace moe = mongo::optionenvironment;
- *
- * moe::OptionsParser parser;
- * moe::Environment environment;
- * moe::OptionSection options;
- *
- * // Register our allowed options with our OptionSection
- * options.addOptionChaining("help", "help", moe::Switch, "Display Help");
- * options.addOptionChaining("port", "port", moe::Int, "Port");
- *
- * // Run the parser
- * Status ret = parser.run(options, argv, env, &environment);
- * if (!ret.isOK()) {
- * cerr << options.helpString() << std::endl;
- * exit(EXIT_FAILURE);
- * }
- *
- * bool displayHelp;
- * ret = environment.get(moe::Key("help"), &displayHelp);
- * if (!ret.isOK()) {
- * // Help is a switch, so it should always be set
- * cout << "Should not get here" << std::endl;
- * exit(EXIT_FAILURE);
- * }
- * if (displayHelp) {
- * cout << options.helpString() << std::endl;
- * exit(EXIT_SUCCESS);
- * }
+/** Handles parsing of the command line as well as YAML and INI config files. Takes an
+ * OptionSection instance that describes the allowed options, parses argv (env not yet
+ * supported), and populates an Environment with the results.
+ *
+ * Usage:
+ *
+ * namespace moe = mongo::optionenvironment;
+ *
+ * moe::OptionsParser parser;
+ * moe::Environment environment;
+ * moe::OptionSection options;
+ *
+ * // Register our allowed options with our OptionSection
+ * options.addOptionChaining("help", "help", moe::Switch, "Display Help");
+ * options.addOptionChaining("port", "port", moe::Int, "Port");
+ *
+ * // Run the parser
+ * Status ret = parser.run(options, argv, env, &environment);
+ * if (!ret.isOK()) {
+ * cerr << options.helpString() << std::endl;
+ * exit(EXIT_FAILURE);
+ * }
+ *
+ * bool displayHelp;
+ * ret = environment.get(moe::Key("help"), &displayHelp);
+ * if (!ret.isOK()) {
+ * // Help is a switch, so it should always be set
+ * cout << "Should not get here" << std::endl;
+ * exit(EXIT_FAILURE);
+ * }
+ * if (displayHelp) {
+ * cout << options.helpString() << std::endl;
+ * exit(EXIT_SUCCESS);
+ * }
+ *
+ * // Get the value of port from the environment
+ * int port = 27017;
+ * ret = environment.get(moe::Key("port"), &port);
+ * if (ret.isOK()) {
+ * // We have overridden port here, otherwise it stays as the default.
+ * }
+ */
+class OptionsParser {
+public:
+ OptionsParser() {}
+ virtual ~OptionsParser() {}
+
+ /** Handles parsing of the command line as well as YAML and INI config files. The
+ * OptionSection be a description of the allowed options. This function populates the
+ * given Environment with the results of parsing the command line and or config files but
+ * does not call validate on the Environment.
*
- * // Get the value of port from the environment
- * int port = 27017;
- * ret = environment.get(moe::Key("port"), &port);
- * if (ret.isOK()) {
- * // We have overridden port here, otherwise it stays as the default.
- * }
+ * The only special option is the "config" option. This function will check if the
+ * "config" option was set on the command line and if so attempt to read the given config
+ * file. For binaries that do not support config files, the "config" option should not be
+ * registered in the OptionSection.
*/
- class OptionsParser {
- public:
- OptionsParser() { }
- virtual ~OptionsParser() { }
-
- /** Handles parsing of the command line as well as YAML and INI config files. The
- * OptionSection be a description of the allowed options. This function populates the
- * given Environment with the results of parsing the command line and or config files but
- * does not call validate on the Environment.
- *
- * The only special option is the "config" option. This function will check if the
- * "config" option was set on the command line and if so attempt to read the given config
- * file. For binaries that do not support config files, the "config" option should not be
- * registered in the OptionSection.
- */
- Status run(const OptionSection&,
- const std::vector<std::string>& argv,
- const std::map<std::string, std::string>& env,
- Environment*);
+ Status run(const OptionSection&,
+ const std::vector<std::string>& argv,
+ const std::map<std::string, std::string>& env,
+ Environment*);
- private:
- /** Handles parsing of the command line and adds the results to the given Environment */
- Status parseCommandLine(const OptionSection&,
- const std::vector<std::string>& argv, Environment*);
+private:
+ /** Handles parsing of the command line and adds the results to the given Environment */
+ Status parseCommandLine(const OptionSection&,
+ const std::vector<std::string>& argv,
+ Environment*);
- /** Handles parsing of an INI config std::string and adds the results to the given Environment */
- Status parseINIConfigFile(const OptionSection&, const std::string& config, Environment*);
+ /** Handles parsing of an INI config std::string and adds the results to the given Environment */
+ Status parseINIConfigFile(const OptionSection&, const std::string& config, Environment*);
- /** Gets defaults from the OptionSection and adds them to the given Environment */
- Status addDefaultValues(const OptionSection&, Environment*);
+ /** Gets defaults from the OptionSection and adds them to the given Environment */
+ Status addDefaultValues(const OptionSection&, Environment*);
- /** Reads the given config file into the output string. This function is virtual for
- * testing purposes only. */
- virtual Status readConfigFile(const std::string& filename, std::string*);
- };
+ /** Reads the given config file into the output string. This function is virtual for
+ * testing purposes only. */
+ virtual Status readConfigFile(const std::string& filename, std::string*);
+};
-} // namespace optionenvironment
-} // namespace mongo
+} // namespace optionenvironment
+} // namespace mongo