summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-04-22 20:31:00 +0000
committerGordon Sim <gsim@apache.org>2008-04-22 20:31:00 +0000
commit63d88fa5ff3407f26590bdf6b5a956d3307f677e (patch)
tree2276bf378240735a701dab3c93c419fee0906a06 /cpp/src
parent1852df5d00eda8d25b7c11a01144fca629fc6427 (diff)
downloadqpid-python-63d88fa5ff3407f26590bdf6b5a956d3307f677e.tar.gz
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/qpid@650640 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpid/client/SessionBase.cpp5
-rw-r--r--cpp/src/qpid/client/SessionBase.h1
-rw-r--r--cpp/src/qpid/client/SessionImpl.cpp6
-rw-r--r--cpp/src/qpid/client/SessionImpl.h1
4 files changed, 13 insertions, 0 deletions
diff --git a/cpp/src/qpid/client/SessionBase.cpp b/cpp/src/qpid/client/SessionBase.cpp
index 4a202842a5..5b9ff595ed 100644
--- a/cpp/src/qpid/client/SessionBase.cpp
+++ b/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/cpp/src/qpid/client/SessionBase.h b/cpp/src/qpid/client/SessionBase.h
index 29a266f4ca..61997244d2 100644
--- a/cpp/src/qpid/client/SessionBase.h
+++ b/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/cpp/src/qpid/client/SessionImpl.cpp b/cpp/src/qpid/client/SessionImpl.cpp
index 190141c411..4f3869319c 100644
--- a/cpp/src/qpid/client/SessionImpl.cpp
+++ b/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/cpp/src/qpid/client/SessionImpl.h b/cpp/src/qpid/client/SessionImpl.h
index eb1c0acb97..86820dbb92 100644
--- a/cpp/src/qpid/client/SessionImpl.h
+++ b/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);