diff options
| author | Gordon Sim <gsim@apache.org> | 2009-11-16 17:30:23 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2009-11-16 17:30:23 +0000 |
| commit | 771ac3e530a701120a933034f29659d16d5b4e85 (patch) | |
| tree | 10216c075c1280ca13bfe8d946026ac26fbebc5b /cpp/src/qpid/client | |
| parent | 9c3dda9cf4bc359e68587767dd2ab072cf4a1298 (diff) | |
| download | qpid-python-771ac3e530a701120a933034f29659d16d5b4e85.tar.gz | |
QPID-664: Remove start()/stop() methods from api
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@880863 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/client')
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp | 26 | ||||
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/ReceiverImpl.h | 14 | ||||
| -rw-r--r-- | cpp/src/qpid/client/amqp0_10/SessionImpl.cpp | 9 |
3 files changed, 15 insertions, 34 deletions
diff --git a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp index 83b245aa02..fbaff7ec04 100644 --- a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.cpp @@ -74,12 +74,16 @@ void ReceiverImpl::cancel() void ReceiverImpl::start() { - execute<Start>(); + if (state == STOPPED) { + state = STARTED; + startFlow(); + } } void ReceiverImpl::stop() { - execute<Stop>(); + state = STOPPED; + session.messageStop(destination); } void ReceiverImpl::setCapacity(uint32_t c) @@ -103,14 +107,14 @@ void ReceiverImpl::init(qpid::client::AsyncSession s, AddressResolution& resolve session = s; if (state == UNRESOLVED) { source = resolver.resolveSource(session, address); - state = STOPPED;//TODO: if session is started, go straight to started + state = STARTED; } if (state == CANCELLED) { source->cancel(session, destination); parent.receiverCancelled(destination); } else { source->subscribe(session, destination); - if (state == STARTED) start(); + start(); } } @@ -171,20 +175,6 @@ void ReceiverImpl::cancelImpl() } } -void ReceiverImpl::startImpl() -{ - if (state == STOPPED) { - state = STARTED; - startFlow(); - } -} - -void ReceiverImpl::stopImpl() -{ - state = STOPPED; - session.messageStop(destination); -} - void ReceiverImpl::setCapacityImpl(uint32_t c) { if (c != capacity) { diff --git a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h index 3a18368116..8033546c51 100644 --- a/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h +++ b/cpp/src/qpid/client/amqp0_10/ReceiverImpl.h @@ -80,8 +80,6 @@ class ReceiverImpl : public qpid::messaging::ReceiverImpl //implementation of public facing methods bool fetchImpl(qpid::messaging::Message& message, qpid::sys::Duration timeout); bool getImpl(qpid::messaging::Message& message, qpid::sys::Duration timeout); - void startImpl(); - void stopImpl(); void cancelImpl(); void setCapacityImpl(uint32_t); @@ -116,18 +114,6 @@ class ReceiverImpl : public qpid::messaging::ReceiverImpl void operator()() { result = impl.fetchImpl(message, timeout); } }; - struct Stop : Command - { - Stop(ReceiverImpl& i) : Command(i) {} - void operator()() { impl.stopImpl(); } - }; - - struct Start : Command - { - Start(ReceiverImpl& i) : Command(i) {} - void operator()() { impl.startImpl(); } - }; - struct Cancel : Command { Cancel(ReceiverImpl& i) : Command(i) {} diff --git a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp index d0085dad75..4d40bd6c50 100644 --- a/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp +++ b/cpp/src/qpid/client/amqp0_10/SessionImpl.cpp @@ -344,13 +344,18 @@ void SessionImpl::commitImpl() void SessionImpl::rollbackImpl() { - for (Receivers::iterator i = receivers.begin(); i != receivers.end(); ++i) i->second.stop(); + for (Receivers::iterator i = receivers.begin(); i != receivers.end(); ++i) { + getImplPtr<Receiver, ReceiverImpl>(i->second)->stop(); + } //ensure that stop has been processed and all previously sent //messages are available for release: session.sync(); incoming.releaseAll(); session.txRollback(); - for (Receivers::iterator i = receivers.begin(); i != receivers.end(); ++i) i->second.start(); + + for (Receivers::iterator i = receivers.begin(); i != receivers.end(); ++i) { + getImplPtr<Receiver, ReceiverImpl>(i->second)->start(); + } } void SessionImpl::acknowledgeImpl() |
