diff options
| author | Stephen D. Huston <shuston@apache.org> | 2008-10-29 19:45:18 +0000 |
|---|---|---|
| committer | Stephen D. Huston <shuston@apache.org> | 2008-10-29 19:45:18 +0000 |
| commit | 50d6ab5d1a74bec0fa8ac456f333333dcb92bae7 (patch) | |
| tree | aaaf5135eef4c596f1455acd11c4b8e812281ea4 /qpid/cpp/src/qpidd.h | |
| parent | e404628b6d1c0e4f6361d8352cc115dc9e642dc2 (diff) | |
| download | qpid-python-50d6ab5d1a74bec0fa8ac456f333333dcb92bae7.tar.gz | |
Split platform-specific qpidd code out to posix/QpiddBroker.cpp; allows Windows port code to come in. Related to QPID-1338
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@708991 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/qpidd.h')
| -rw-r--r-- | qpid/cpp/src/qpidd.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpidd.h b/qpid/cpp/src/qpidd.h new file mode 100644 index 0000000000..c702270e80 --- /dev/null +++ b/qpid/cpp/src/qpidd.h @@ -0,0 +1,70 @@ +#ifndef QPID_H +#define QPID_H + +/* + * + * Copyright (c) 2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "qpid/Modules.h" +#include "qpid/Options.h" +#include "qpid/broker/Broker.h" +#include "qpid/log/Options.h" + +#include <memory> + +// BootstrapOptions is a minimal subset of options used for a pre-parse +// of the command line to discover which plugin modules need to be loaded. +// The pre-parse is necessary because plugin modules may supply their own +// set of options. CommonOptions is needed to properly support loading +// from a configuration file. +struct BootstrapOptions : public qpid::Options { + qpid::CommonOptions common; + qpid::ModuleOptions module; + qpid::log::Options log; + + BootstrapOptions(const char *argv0); +}; + +// Each platform derives an options struct from QpiddOptionsPrivate, adding +// platform-specific option types. QpiddOptions needs to allocation one of +// these derived structs from its constructor. +struct QpiddOptions; +struct QpiddOptionsPrivate { + QpiddOptions *options; + QpiddOptionsPrivate(QpiddOptions *parent) : options(parent) {} + virtual ~QpiddOptionsPrivate() {} +protected: + QpiddOptionsPrivate() {} +}; + +struct QpiddOptions : public qpid::Options { + qpid::CommonOptions common; + qpid::ModuleOptions module; + qpid::broker::Broker::Options broker; + qpid::log::Options log; + std::auto_ptr<QpiddOptionsPrivate> platform; + + QpiddOptions(const char *argv0); + void usage() const; +}; + +class QpiddBroker { +public: + int execute (QpiddOptions *options); +}; + +#endif /*!QPID_H*/ |
