summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2009-11-16 17:30:23 +0000
committerGordon Sim <gsim@apache.org>2009-11-16 17:30:23 +0000
commit771ac3e530a701120a933034f29659d16d5b4e85 (patch)
tree10216c075c1280ca13bfe8d946026ac26fbebc5b /cpp/src/qpid/client
parent9c3dda9cf4bc359e68587767dd2ab072cf4a1298 (diff)
downloadqpid-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.cpp26
-rw-r--r--cpp/src/qpid/client/amqp0_10/ReceiverImpl.h14
-rw-r--r--cpp/src/qpid/client/amqp0_10/SessionImpl.cpp9
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()