summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/broker/Connection.cpp3
-rw-r--r--cpp/src/qpid/broker/ConnectionHandler.cpp3
-rw-r--r--cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h1
-rw-r--r--cpp/src/qpid/cluster/OutputInterceptor.cpp5
-rw-r--r--cpp/src/qpid/cluster/OutputInterceptor.h1
5 files changed, 10 insertions, 3 deletions
diff --git a/cpp/src/qpid/broker/Connection.cpp b/cpp/src/qpid/broker/Connection.cpp
index c53d943e98..c21fd49171 100644
--- a/cpp/src/qpid/broker/Connection.cpp
+++ b/cpp/src/qpid/broker/Connection.cpp
@@ -103,6 +103,9 @@ Connection::~Connection()
}
void Connection::received(framing::AMQFrame& frame) {
+ // Received frame on connection so delay timeout
+ restartTimeout();
+
if (frame.getChannel() == 0 && frame.getMethod()) {
adapter.handle(frame);
} else {
diff --git a/cpp/src/qpid/broker/ConnectionHandler.cpp b/cpp/src/qpid/broker/ConnectionHandler.cpp
index d3e795ae06..1d6c4c9ad8 100644
--- a/cpp/src/qpid/broker/ConnectionHandler.cpp
+++ b/cpp/src/qpid/broker/ConnectionHandler.cpp
@@ -63,9 +63,6 @@ void ConnectionHandler::heartbeat()
void ConnectionHandler::handle(framing::AMQFrame& frame)
{
- // Received frame on connection so delay timeout
- handler->connection.restartTimeout();
-
AMQMethodBody* method=frame.getBody()->getMethod();
Connection::ErrorListener* errorListener = handler->connection.getErrorListener();
try{
diff --git a/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h b/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h
index 6a30bddf06..566a82476e 100644
--- a/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h
+++ b/cpp/src/qpid/cluster/NoOpConnectionOutputHandler.h
@@ -37,6 +37,7 @@ class NoOpConnectionOutputHandler : public sys::ConnectionOutputHandler
public:
virtual void send(framing::AMQFrame&) {}
virtual void close() {}
+ virtual void abort() {}
virtual void activateOutput() {}
virtual void giveReadCredit(int32_t) {}
};
diff --git a/cpp/src/qpid/cluster/OutputInterceptor.cpp b/cpp/src/qpid/cluster/OutputInterceptor.cpp
index f898957351..b5fa595577 100644
--- a/cpp/src/qpid/cluster/OutputInterceptor.cpp
+++ b/cpp/src/qpid/cluster/OutputInterceptor.cpp
@@ -64,6 +64,11 @@ void OutputInterceptor::activateOutput() {
sendDoOutput(sendMax);
}
+void OutputInterceptor::abort() {
+ sys::Mutex::ScopedLock l(lock);
+ next->abort();
+}
+
void OutputInterceptor::giveReadCredit(int32_t credit) {
sys::Mutex::ScopedLock l(lock);
next->giveReadCredit(credit);
diff --git a/cpp/src/qpid/cluster/OutputInterceptor.h b/cpp/src/qpid/cluster/OutputInterceptor.h
index 7d6c718b82..62b7d6567f 100644
--- a/cpp/src/qpid/cluster/OutputInterceptor.h
+++ b/cpp/src/qpid/cluster/OutputInterceptor.h
@@ -43,6 +43,7 @@ class OutputInterceptor : public sys::ConnectionOutputHandler {
// sys::ConnectionOutputHandler functions
void send(framing::AMQFrame& f);
+ void abort();
void activateOutput();
void giveReadCredit(int32_t);
void close();