summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/src/qpid/client/SessionBase_0_10.cpp2
-rw-r--r--cpp/src/qpid/client/SessionBase_0_10.h2
-rw-r--r--cpp/src/tests/ClientSessionTest.cpp7
3 files changed, 11 insertions, 0 deletions
diff --git a/cpp/src/qpid/client/SessionBase_0_10.cpp b/cpp/src/qpid/client/SessionBase_0_10.cpp
index 140d6f9a12..03c0468107 100644
--- a/cpp/src/qpid/client/SessionBase_0_10.cpp
+++ b/cpp/src/qpid/client/SessionBase_0_10.cpp
@@ -72,4 +72,6 @@ uint32_t SessionBase_0_10::timeout(uint32_t seconds) { return impl->setTimeout(s
SessionId SessionBase_0_10::getId() const { return impl->getId(); }
+bool SessionBase_0_10::isValid() const { return impl; }
+
}} // namespace qpid::client
diff --git a/cpp/src/qpid/client/SessionBase_0_10.h b/cpp/src/qpid/client/SessionBase_0_10.h
index 94686ff39f..8438977e45 100644
--- a/cpp/src/qpid/client/SessionBase_0_10.h
+++ b/cpp/src/qpid/client/SessionBase_0_10.h
@@ -97,6 +97,8 @@ class SessionBase_0_10 {
QPID_CLIENT_EXTERN void markCompleted(const framing::SequenceNumber& id, bool cumulative, bool notifyPeer);
QPID_CLIENT_EXTERN void sendCompletion();
+ QPID_CLIENT_EXTERN bool isValid() const;
+
protected:
boost::shared_ptr<SessionImpl> impl;
friend class SessionBase_0_10Access;
diff --git a/cpp/src/tests/ClientSessionTest.cpp b/cpp/src/tests/ClientSessionTest.cpp
index f732d61ce1..c82cb77e95 100644
--- a/cpp/src/tests/ClientSessionTest.cpp
+++ b/cpp/src/tests/ClientSessionTest.cpp
@@ -583,6 +583,13 @@ QPID_AUTO_TEST_CASE(testGetThenSubscribe) {
}
}
+QPID_AUTO_TEST_CASE(testSessionIsValid) {
+ ClientSessionFixture fix;
+ BOOST_CHECK(fix.session.isValid());
+ Session session;
+ BOOST_CHECK(!session.isValid());
+}
+
QPID_AUTO_TEST_SUITE_END()