diff options
Diffstat (limited to 'cpp/src/qpid/sys/TCPIOPlugin.cpp')
| -rw-r--r-- | cpp/src/qpid/sys/TCPIOPlugin.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/cpp/src/qpid/sys/TCPIOPlugin.cpp b/cpp/src/qpid/sys/TCPIOPlugin.cpp index e82a6a9102..9d272ee69c 100644 --- a/cpp/src/qpid/sys/TCPIOPlugin.cpp +++ b/cpp/src/qpid/sys/TCPIOPlugin.cpp @@ -53,22 +53,20 @@ class AsynchIOProtocolFactory : public ProtocolFactory { bool isClient); }; -// Static instance to initialise plugin -static class TCPIOPlugin : public Plugin { - void earlyInitialize(Target&) { +struct TCPIOPlugin : public PluginT<broker::Broker> { + void initializeT(broker::Broker& broker) { + const broker::Broker::Options& opts = broker.getOptions(); + ProtocolFactory::shared_ptr protocol(new AsynchIOProtocolFactory(opts.port, opts.connectionBacklog)); + QPID_LOG(info, "Listening on TCP port " << protocol->getPort()); + broker.registerProtocolFactory(protocol); } - - void initialize(Target& target) { - broker::Broker* broker = dynamic_cast<broker::Broker*>(&target); - // Only provide to a Broker - if (broker) { - const broker::Broker::Options& opts = broker->getOptions(); - ProtocolFactory::shared_ptr protocol(new AsynchIOProtocolFactory(opts.port, opts.connectionBacklog)); - QPID_LOG(info, "Listening on TCP port " << protocol->getPort()); - broker->registerProtocolFactory(protocol); - } +}; + +static struct TCPIOPluginFactory : public Plugin::FactoryT<broker::Broker> { + boost::shared_ptr<Plugin> createT(broker::Broker&) { + return make_shared_ptr(new TCPIOPlugin()); } -} tcpPlugin; +} theTCPIOPluginFactory; // Static plugin factory instance. AsynchIOProtocolFactory::AsynchIOProtocolFactory(int16_t port, int backlog) : listeningPort(listener.listen(port, backlog)) |
