summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/windows/QpiddBroker.cpp
diff options
context:
space:
mode:
authorCharles E. Rolke <chug@apache.org>2012-09-20 13:48:40 +0000
committerCharles E. Rolke <chug@apache.org>2012-09-20 13:48:40 +0000
commite20a23b370e64c6f09a57b4ddefd6f650e89ba13 (patch)
tree9a8c05e15b071bc7fd3f78017d76b8ffb4824e32 /qpid/cpp/src/windows/QpiddBroker.cpp
parenta848dc683403f7f2cb26c693b561d3aa70506efb (diff)
downloadqpid-python-e20a23b370e64c6f09a57b4ddefd6f650e89ba13.tar.gz
QPID-3500 C++ qpidd broker --help should work despite parse errors
This patch finds and processes --version before anything else. Then it finds --help before fully parsing command line options. In the event of a parse error, help usage may be shown as requested. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1388032 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/windows/QpiddBroker.cpp')
-rw-r--r--qpid/cpp/src/windows/QpiddBroker.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/qpid/cpp/src/windows/QpiddBroker.cpp b/qpid/cpp/src/windows/QpiddBroker.cpp
index 4ca3f3059c..de2e41dd4d 100644
--- a/qpid/cpp/src/windows/QpiddBroker.cpp
+++ b/qpid/cpp/src/windows/QpiddBroker.cpp
@@ -53,6 +53,10 @@ BootstrapOptions::BootstrapOptions(const char* argv0)
add(log);
}
+void BootstrapOptions::usage() const {
+ std::cout << "Usage: qpidd [OPTIONS]" << std::endl << std::endl << *this << std::endl;
+}
+
// Local functions to set and get the pid via a LockFile.
namespace {
@@ -225,10 +229,10 @@ VOID WINAPI SvcCtrlHandler(DWORD control)
::SetServiceStatus(svcStatusHandle, &svcStatus);
CtrlHandler(CTRL_C_EVENT);
break;
-
+
case SERVICE_CONTROL_INTERROGATE:
break;
-
+
default:
break;
}
@@ -306,7 +310,7 @@ struct ServiceOptions : public qpid::Options {
std::string password;
std::string depends;
- ServiceOptions()
+ ServiceOptions()
: qpid::Options("Service options"),
install(false),
start(false),
@@ -423,7 +427,7 @@ int QpiddBroker::execute (QpiddOptions *options) {
// Relies on port number being set via --port or QPID_PORT env variable.
NamedSharedMemory<BrokerInfo> info(brokerInfoName(options->broker.port));
int pid = info.get().pid;
- if (pid < 0)
+ if (pid < 0)
return 1;
if (myOptions->control.check)
std::cout << pid << std::endl;