diff options
| author | Alan Conway <aconway@apache.org> | 2007-08-31 20:51:22 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2007-08-31 20:51:22 +0000 |
| commit | 761e10501fe5ea51f9d8c40d9a200ae27193ab23 (patch) | |
| tree | e2d4bdfdc0b9383661947378a1f183387501637c /cpp/src/qpid/broker/DtxHandlerImpl.cpp | |
| parent | 655b3b5806bafdd784f6a9c242e26341bd6aeccc (diff) | |
| download | qpid-python-761e10501fe5ea51f9d8c40d9a200ae27193ab23.tar.gz | |
* Summary:
- Moved BrokerChannel functionality into Session.
- Moved ChannelHandler methods handling into SessionAdapter.
- Updated all handlers to use session.
(We're still using AMQP channel methods in SessionAdapter)
Roles & responsibilities:
Session:
- represents an _open_ session, may be active or suspended.
- ows all session state including handler chains.
- attahced to SessionAdapter when active, not when suspended.
SessionAdapter:
- reprents the association of a channel with a session.
- owned by Connection, kept in the session map.
- channel open == SessionAdapter.getSessio() != 0
Anything that depends on attachment to a channel, connection or
protocol should be in SessionAdpater. Anything that suvives a
session suspend belongs in Session.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@571575 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/DtxHandlerImpl.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/DtxHandlerImpl.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/cpp/src/qpid/broker/DtxHandlerImpl.cpp b/cpp/src/qpid/broker/DtxHandlerImpl.cpp index e6593c30ca..e07fdf80bf 100644 --- a/cpp/src/qpid/broker/DtxHandlerImpl.cpp +++ b/cpp/src/qpid/broker/DtxHandlerImpl.cpp @@ -19,7 +19,7 @@ #include <boost/format.hpp> #include "Broker.h" -#include "BrokerChannel.h" +#include "Session.h" using namespace qpid::broker; using namespace qpid::framing; @@ -41,7 +41,7 @@ DtxHandlerImpl::DtxHandlerImpl(CoreRefs& parent) : CoreRefs(parent) {} void DtxHandlerImpl::select() { - channel.selectDtx(); + session.selectDtx(); } DtxDemarcationEndResult DtxHandlerImpl::end(u_int16_t /*ticket*/, @@ -51,7 +51,7 @@ DtxDemarcationEndResult DtxHandlerImpl::end(u_int16_t /*ticket*/, { try { if (fail) { - channel.endDtx(xid, true); + session.endDtx(xid, true); if (suspend) { throw ConnectionException(503, "End and suspend cannot both be set."); } else { @@ -59,9 +59,9 @@ DtxDemarcationEndResult DtxHandlerImpl::end(u_int16_t /*ticket*/, } } else { if (suspend) { - channel.suspendDtx(xid); + session.suspendDtx(xid); } else { - channel.endDtx(xid, false); + session.endDtx(xid, false); } return DtxDemarcationEndResult(XA_OK); } @@ -80,9 +80,9 @@ DtxDemarcationStartResult DtxHandlerImpl::start(u_int16_t /*ticket*/, } try { if (resume) { - channel.resumeDtx(xid); + session.resumeDtx(xid); } else { - channel.startDtx(xid, broker.getDtxManager(), join); + session.startDtx(xid, broker.getDtxManager(), join); } return DtxDemarcationStartResult(XA_OK); } catch (const DtxTimeoutException& e) { |
