summaryrefslogtreecommitdiff
path: root/cpp/lib/common/CommonOptions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/lib/common/CommonOptions.cpp')
-rw-r--r--cpp/lib/common/CommonOptions.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/cpp/lib/common/CommonOptions.cpp b/cpp/lib/common/CommonOptions.cpp
index 8efb3a6baa..d4db3660bd 100644
--- a/cpp/lib/common/CommonOptions.cpp
+++ b/cpp/lib/common/CommonOptions.cpp
@@ -17,9 +17,29 @@
*/
#include "CommonOptions.h"
+#include <algorithm>
namespace qpid {
+namespace program_options {
+
+char env2optchar(char env) {
+ return (env=='_') ? '-' : tolower(env);
+}
+
+const std::string envPrefix("QPID_");
+
+std::string env2option(const std::string& env) {
+ if (env.find(envPrefix) ==0) {
+ std::string opt = env.substr(envPrefix.size());
+ std::transform(opt.begin(), opt.end(), opt.begin(), env2optchar);
+ return opt;
+ }
+ return std::string();
+}
+
+} // namespace program_options
+
const int CommonOptions::DEFAULT_PORT=5672;
CommonOptions::CommonOptions() : trace(false), port(DEFAULT_PORT) {}