diff options
| author | Alan Conway <aconway@apache.org> | 2007-04-25 18:06:14 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2007-04-25 18:06:14 +0000 |
| commit | aefcbcdd3f930f4934b022df6b214d6a62f81d35 (patch) | |
| tree | c7684560898c7bf04ff485eaf3d8038a9d19f58b /cpp/src/qpid/broker/Broker.cpp | |
| parent | d026ee76c093fe93afe15053d099e6ecc68a64ff (diff) | |
| download | qpid-python-aefcbcdd3f930f4934b022df6b214d6a62f81d35.tar.gz | |
* qpid/CommonOptions.h:
- Convenience classs/functions to use boost::program_options.
- CommonOptions class for options common to client/broker.
* qpid/broker/Broker.h:
- Replaced broker::Configuration with class Broker::Options,
derived from CommonOptions.
* qpidd.cpp: Updated options handling.
* qpid/Exception.h: Added strError function to get std::string from errno.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@532430 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Broker.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/Broker.cpp | 55 |
1 files changed, 39 insertions, 16 deletions
diff --git a/cpp/src/qpid/broker/Broker.cpp b/cpp/src/qpid/broker/Broker.cpp index cda3745522..b285fbad24 100644 --- a/cpp/src/qpid/broker/Broker.cpp +++ b/cpp/src/qpid/broker/Broker.cpp @@ -40,13 +40,38 @@ namespace qpid { namespace broker { +Broker::Options::Options() : + workerThreads(5), + maxConnections(500), + connectionBacklog(10), + store(), + stagingThreshold(5000000) +{} + +void Broker::Options::addTo(po::options_description& desc) +{ + using namespace po; + CommonOptions::addTo(desc); + desc.add_options() + ("worker-threads", optValue(workerThreads, "N"), + "Broker thread pool size") + ("max-connections", optValue(maxConnections, "N"), + "Maximum allowed connections") + ("connection-backlog", optValue(connectionBacklog, "N"), + "Connection backlog limit for server socket.") + ("staging-threshold", optValue(stagingThreshold, "N"), + "Messages over N bytes are staged to disk.") + ("store", optValue(store,"LIBNAME"), + "Name of message store shared library."); +} + const std::string empty; const std::string amq_direct("amq.direct"); const std::string amq_topic("amq.topic"); const std::string amq_fanout("amq.fanout"); const std::string amq_match("amq.match"); -Broker::Broker(const Configuration& conf) : +Broker::Broker(const Broker::Options& conf) : config(conf), store(createStore(conf)), queues(store.get()), @@ -63,7 +88,8 @@ Broker::Broker(const Configuration& conf) : exchanges.declare(amq_match, HeadersExchange::typeName); if(store.get()) { - RecoveryManagerImpl recoverer(queues, exchanges, conf.getStagingThreshold()); + RecoveryManagerImpl recoverer( + queues, exchanges, conf.stagingThreshold); store->recover(recoverer); } @@ -73,20 +99,20 @@ Broker::Broker(const Configuration& conf) : Broker::shared_ptr Broker::create(int16_t port) { - Configuration config; - config.setPort(port); + Options config; + config.port=port; return create(config); } -Broker::shared_ptr Broker::create(const Configuration& config) { +Broker::shared_ptr Broker::create(const Options& config) { return Broker::shared_ptr(new Broker(config)); } -MessageStore* Broker::createStore(const Configuration& config) { - if (config.getStore().empty()) - return new NullMessageStore(config.isTrace()); +MessageStore* Broker::createStore(const Options& config) { + if (config.store.empty()) + return new NullMessageStore(config.trace); else - return new MessageStoreModule(config.getStore()); + return new MessageStoreModule(config.store); } void Broker::run() { @@ -108,16 +134,13 @@ int16_t Broker::getPort() const { return getAcceptor().getPort(); } Acceptor& Broker::getAcceptor() const { if (!acceptor) const_cast<Acceptor::shared_ptr&>(acceptor) = - Acceptor::create(config.getPort(), - config.getConnectionBacklog(), - config.getWorkerThreads(), - config.isTrace()); + Acceptor::create(config.port, + config.connectionBacklog, + config.workerThreads, + config.trace); return *acceptor; } -const int16_t Broker::DEFAULT_PORT(5672); - - }} // namespace qpid::broker |
