From 0a90e5db613b035e15af3b7358205ed1f7960d2c Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 26 Apr 2007 16:01:04 +0000 Subject: Merged revisions 532430 by hand from https://svn.apache.org/repos/asf/incubator/qpid/branches/trunk/qpid/cpp ------------------------------------------------------------------------ r532430 | aconway | 2007-04-25 14:06:14 -0400 (Wed, 25 Apr 2007) | 10 lines * 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/branches/M2@532787 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/lib/broker/Broker.cpp | 51 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 13 deletions(-) (limited to 'cpp/lib/broker/Broker.cpp') diff --git a/cpp/lib/broker/Broker.cpp b/cpp/lib/broker/Broker.cpp index 6c0d7a3f3f..806127bf43 100644 --- a/cpp/lib/broker/Broker.cpp +++ b/cpp/lib/broker/Broker.cpp @@ -22,38 +22,63 @@ #include #include - using namespace qpid::broker; using namespace qpid::sys; -Broker::Broker(const Configuration& config) : - acceptor(Acceptor::create(config.getPort(), - config.getConnectionBacklog(), - config.getWorkerThreads(), - config.isTrace())), - factory(config.getStore()) +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."); +} + + +Broker::Broker(const Options& config) : + acceptor(Acceptor::create(config.port, + config.connectionBacklog, + config.workerThreads, + config.trace)), + factory(config.store) { } 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)); } - + void Broker::run() { acceptor->run(&factory); } void Broker::shutdown() { - acceptor->shutdown(); + if (acceptor) + acceptor->shutdown(); } Broker::~Broker() { } -const int16_t Broker::DEFAULT_PORT(5672); -- cgit v1.2.1