From 675dc446ba5c44a82e411a32c5fd04d726215fbf Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Tue, 22 Apr 2008 20:31:00 +0000 Subject: QPID-920: allow applications to trigger the sending of a flush to server git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@650640 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/qpid/client/SessionBase.cpp | 5 +++++ qpid/cpp/src/qpid/client/SessionBase.h | 1 + qpid/cpp/src/qpid/client/SessionImpl.cpp | 6 ++++++ qpid/cpp/src/qpid/client/SessionImpl.h | 1 + 4 files changed, 13 insertions(+) (limited to 'qpid/cpp/src') diff --git a/qpid/cpp/src/qpid/client/SessionBase.cpp b/qpid/cpp/src/qpid/client/SessionBase.cpp index 4a202842a5..5b9ff595ed 100644 --- a/qpid/cpp/src/qpid/client/SessionBase.cpp +++ b/qpid/cpp/src/qpid/client/SessionBase.cpp @@ -43,6 +43,11 @@ Execution& SessionBase::getExecution() return *impl; } +void SessionBase::flush() +{ + impl->sendFlush(); +} + void SessionBase::sync() { ExecutionSyncBody b; diff --git a/qpid/cpp/src/qpid/client/SessionBase.h b/qpid/cpp/src/qpid/client/SessionBase.h index 29a266f4ca..61997244d2 100644 --- a/qpid/cpp/src/qpid/client/SessionBase.h +++ b/qpid/cpp/src/qpid/client/SessionBase.h @@ -131,6 +131,7 @@ class SessionBase Execution& getExecution(); void sync(); + void flush(); void markCompleted(const framing::SequenceNumber& id, bool cumulative, bool notifyPeer); void sendCompletion(); diff --git a/qpid/cpp/src/qpid/client/SessionImpl.cpp b/qpid/cpp/src/qpid/client/SessionImpl.cpp index 190141c411..4f3869319c 100644 --- a/qpid/cpp/src/qpid/client/SessionImpl.cpp +++ b/qpid/cpp/src/qpid/client/SessionImpl.cpp @@ -525,6 +525,12 @@ void SessionImpl::sendCompletion() sendCompletionImpl(); } +void SessionImpl::sendFlush() +{ + Lock l(state); + proxy.flush(false, false, true); +} + void SessionImpl::sendCompletionImpl() { proxy.completed(completedIn, true); diff --git a/qpid/cpp/src/qpid/client/SessionImpl.h b/qpid/cpp/src/qpid/client/SessionImpl.h index eb1c0acb97..86820dbb92 100644 --- a/qpid/cpp/src/qpid/client/SessionImpl.h +++ b/qpid/cpp/src/qpid/client/SessionImpl.h @@ -88,6 +88,7 @@ public: bool isCompleteUpTo(const framing::SequenceNumber& id); void waitForCompletion(const framing::SequenceNumber& id); void sendCompletion(); + void sendFlush(); //NOTE: these are called by the network thread when the connection is closed or dies void connectionClosed(uint16_t code, const std::string& text); -- cgit v1.2.1