diff options
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 |
