You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2007/04/26 16:13:15 UTC
svn commit: r532750 - in /incubator/qpid/trunk/qpid/cpp: docs/man/qpidd.x
src/qpidd.cpp
Author: aconway
Date: Thu Apr 26 07:13:14 2007
New Revision: 532750
URL: http://svn.apache.org/viewvc?view=rev&rev=532750
Log:
- docs/man/qpidd.x: explain file and environment configuration.
- src/qpidd.cpp: read config from file.
Modified:
incubator/qpid/trunk/qpid/cpp/docs/man/qpidd.x
incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp
Modified: incubator/qpid/trunk/qpid/cpp/docs/man/qpidd.x
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/docs/man/qpidd.x?view=diff&rev=532750&r1=532749&r2=532750
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/docs/man/qpidd.x (original)
+++ incubator/qpid/trunk/qpid/cpp/docs/man/qpidd.x Thu Apr 26 07:13:14 2007
@@ -1,5 +1,16 @@
[NAME]
-qpidd \- the Qpid broker daemon
+qpidd \- the Qpid AMQP broker daemon
[DESCRIPTION]
-.\" Add any additional description here
+
+Start the AMQP broker. The broker options can be specified on the command line (e.g. --worker-threads 10), in an environment variable (e.g. export QPID_WORKER_THREADS=10), or as a line in a configuration file (e.g. worker-threads=10).
+
+Command line options take precedence over environment variables, which
+take precedence over the config file.
+
+
+
+
+
+
+
Modified: incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp?view=diff&rev=532750&r1=532749&r2=532750
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp Thu Apr 26 07:13:14 2007
@@ -19,12 +19,10 @@
*
*/
#include "qpid/broker/Broker.h"
-#include <signal.h>
#include <iostream>
-#include <memory>
-#include <cerrno>
+#include <fstream>
+#include <signal.h>
#include "config.h"
-#include <unistd.h>
#include "qpid/sys/posix/check.h"
using namespace qpid;
@@ -38,16 +36,20 @@
bool help;
bool version;
bool daemon;
+ string config;
po::options_description desc;
QpiddOptions() :
- help(false), version(false), daemon(false), desc("Options")
+ help(false), version(false), daemon(false),
+ config("/etc/qpidd.conf"),
+ desc("Options")
{
using namespace po;
desc.add_options()
("daemon,d", optValue(daemon), "Run as a daemon");
Broker::Options::addTo(desc);
desc.add_options()
+ ("config", optValue(config, "FILE"), "Configuation file")
("help,h", optValue(help), "Print help message")
("version,v", optValue(version), "Print version information");
}
@@ -60,16 +62,22 @@
po::store(po::parse_environment(desc, po::env2option), vm);
}
catch (const logic_error& e) {
- // Make it clear this is an env. var problem, the
- // exception from boost::program_options doesn't.
- throw logic_error(string(e.what())+" (parsing environment variables)");
+ throw logic_error(string("parsing environment variables: ")
+ + e.what());
+ }
+ po::notify(vm); // So we can use the value of config.
+ try {
+ ifstream conf(config.c_str());
+ po::store(po::parse_config_file(conf, desc), vm);
+ }
+ catch (const logic_error& e) {
+ throw logic_error(string("parsing config file: ")+ e.what());
}
po::notify(vm);
};
void usage(ostream& out) const {
- out << "Usage: qpidd [OPTIONS]" << endl
- << "Start the Qpid AMQP broker." << endl << endl
+ out << "Usage: qpidd [OPTIONS]" << endl << endl
<< desc << endl;
};
};