diff options
| author | Gordon Sim <gsim@apache.org> | 2007-04-19 17:56:21 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2007-04-19 17:56:21 +0000 |
| commit | b1ad015fe2670bc3e5471c5e350e243cca948dcf (patch) | |
| tree | cbbae911b59a34f7cbe998609ca9d14f8984ca37 /cpp/src/qpid/broker/DtxHandlerImpl.cpp | |
| parent | e7cc3594288f5a6ed6c6565e34413823f5b8e2d8 (diff) | |
| download | qpid-python-b1ad015fe2670bc3e5471c5e350e243cca948dcf.tar.gz | |
Some dtx related updates.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@530500 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/DtxHandlerImpl.cpp')
| -rw-r--r-- | cpp/src/qpid/broker/DtxHandlerImpl.cpp | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/DtxHandlerImpl.cpp b/cpp/src/qpid/broker/DtxHandlerImpl.cpp new file mode 100644 index 0000000000..06b69bc20a --- /dev/null +++ b/cpp/src/qpid/broker/DtxHandlerImpl.cpp @@ -0,0 +1,124 @@ +/* + * + * Copyright (c) 2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +#include "DtxHandlerImpl.h" + +#include "Broker.h" +#include "BrokerChannel.h" + +using namespace qpid::broker; +using qpid::framing::FieldTable; +using qpid::framing::MethodContext; +using std::string; + +DtxHandlerImpl::DtxHandlerImpl(CoreRefs& parent) : CoreRefs(parent) {} + + +// DtxDemarcationHandler: + +void DtxHandlerImpl::end(const MethodContext& /*context*/, + u_int16_t /*ticket*/, + const string& /*xid*/, + bool /*fail*/, + bool /*suspend*/ ) +{ + channel.endDtx(); + //send end-ok + //TODO: handle fail and suspend + //TODO: check xid is as expected? +} + + +void DtxHandlerImpl::select(const MethodContext& /*context*/ ) +{ + //don't need to do anything here really + //send select-ok +} + + +void DtxHandlerImpl::start(const MethodContext& /*context*/, + u_int16_t /*ticket*/, + const string& xid, + bool /*join*/, + bool /*resume*/ ) +{ + channel.startDtx(xid, broker.getDtxManager()); + //send start-ok + //TODO: handle join and resume +} + +// DtxCoordinationHandler: + +void DtxHandlerImpl::prepare(const MethodContext& /*context*/, + u_int16_t /*ticket*/, + const string& xid ) +{ + broker.getDtxManager().prepare(xid); + //send prepare-ok +} + +void DtxHandlerImpl::commit(const MethodContext& /*context*/, + u_int16_t /*ticket*/, + const string& xid, + bool /*onePhase*/ ) +{ + broker.getDtxManager().commit(xid); + //send commit-ok + //TODO use onePhase flag to validate correct sequence +} + + +void DtxHandlerImpl::rollback(const MethodContext& /*context*/, + u_int16_t /*ticket*/, + const string& xid ) +{ + broker.getDtxManager().rollback(xid); + //send rollback-ok +} + +void DtxHandlerImpl::recover(const MethodContext& /*context*/, + u_int16_t /*ticket*/, + bool /*startscan*/, + u_int32_t /*endscan*/ ) +{ + //TODO +} + +void DtxHandlerImpl::forget(const MethodContext& /*context*/, + u_int16_t /*ticket*/, + const string& /*xid*/ ) +{ + //TODO +} + +void DtxHandlerImpl::getTimeout(const MethodContext& /*context*/, + const string& /*xid*/ ) +{ + //TODO +} + + +void DtxHandlerImpl::setTimeout(const MethodContext& /*context*/, + u_int16_t /*ticket*/, + const string& /*xid*/, + u_int32_t /*timeout*/ ) +{ + //TODO +} + + + |
