summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/sys
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/sys')
-rw-r--r--cpp/src/qpid/sys/Acceptor.h5
-rw-r--r--cpp/src/qpid/sys/AsynchIOAcceptor.cpp9
2 files changed, 10 insertions, 4 deletions
diff --git a/cpp/src/qpid/sys/Acceptor.h b/cpp/src/qpid/sys/Acceptor.h
index 7ff03e0eeb..5eb1f1a500 100644
--- a/cpp/src/qpid/sys/Acceptor.h
+++ b/cpp/src/qpid/sys/Acceptor.h
@@ -29,6 +29,7 @@ namespace qpid {
namespace sys {
class ConnectionInputHandlerFactory;
+class ConnectionInputHandler;
class Acceptor : public qpid::SharedObject<Acceptor>
{
@@ -38,7 +39,9 @@ class Acceptor : public qpid::SharedObject<Acceptor>
virtual uint16_t getPort() const = 0;
virtual std::string getHost() const = 0;
virtual void run(ConnectionInputHandlerFactory* factory) = 0;
- virtual void connect(const std::string& host, int16_t port, ConnectionInputHandlerFactory* factory) = 0;
+ virtual ConnectionInputHandler* connect(
+ const std::string& host, int16_t port,
+ ConnectionInputHandlerFactory* factory) = 0;
/** Note: this function is async-signal safe */
virtual void shutdown() = 0;
diff --git a/cpp/src/qpid/sys/AsynchIOAcceptor.cpp b/cpp/src/qpid/sys/AsynchIOAcceptor.cpp
index 9fd32add72..0586eb9d36 100644
--- a/cpp/src/qpid/sys/AsynchIOAcceptor.cpp
+++ b/cpp/src/qpid/sys/AsynchIOAcceptor.cpp
@@ -54,7 +54,10 @@ class AsynchIOAcceptor : public Acceptor {
AsynchIOAcceptor(int16_t port, int backlog, int threads);
~AsynchIOAcceptor() {}
void run(ConnectionInputHandlerFactory* factory);
- void connect(const std::string& host, int16_t port, ConnectionInputHandlerFactory* factory);
+ ConnectionInputHandler* connect(
+ const std::string& host, int16_t port,
+ ConnectionInputHandlerFactory* factory);
+
void shutdown();
uint16_t getPort() const;
@@ -188,7 +191,7 @@ void AsynchIOAcceptor::run(ConnectionInputHandlerFactory* fact) {
}
}
-void AsynchIOAcceptor::connect(const std::string& host, int16_t port, ConnectionInputHandlerFactory* f)
+ConnectionInputHandler* AsynchIOAcceptor::connect(const std::string& host, int16_t port, ConnectionInputHandlerFactory* f)
{
Socket* socket = new Socket();//Should be deleted by handle when socket closes
socket->connect(host, port);
@@ -209,7 +212,7 @@ void AsynchIOAcceptor::connect(const std::string& host, int16_t port, Connection
aio->queueReadBuffer(new Buff);
}
aio->start(poller);
-
+ return handler;
}