summaryrefslogtreecommitdiff
path: root/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp
diff options
context:
space:
mode:
authorClifford Allan Jansen <cliffjansen@apache.org>2010-10-24 23:29:37 +0000
committerClifford Allan Jansen <cliffjansen@apache.org>2010-10-24 23:29:37 +0000
commitf86e9093784d583f9af5068cbb5cdbc9a0f90e19 (patch)
treef6ce582ef2e06f9375429cf90936360ce33e81e5 /qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp
parentb3fba89268a91558b7d5012bdc9a14f8385c89a5 (diff)
downloadqpid-python-f86e9093784d583f9af5068cbb5cdbc9a0f90e19.tar.gz
QPID-2646 patches
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1026915 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp')
-rw-r--r--qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp b/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp
index 27725b8207..de7141dadb 100644
--- a/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp
+++ b/qpid/wcf/src/Apache/Qpid/Interop/OutputLink.cpp
@@ -48,13 +48,14 @@ using namespace std;
using namespace Apache::Qpid::AmqpTypes;
-OutputLink::OutputLink(AmqpSession^ session, String^ defaultQueue) :
+OutputLink::OutputLink(AmqpSession^ session, String^ address) :
amqpSession(session),
- queue(defaultQueue),
disposed(false),
maxFrameSize(session->Connection->MaxFrameSize),
finalizing(false)
{
+ qpidAddress = QpidAddress::CreateAddress(address, false);
+ qpidAddress->ResolveLink(session);
}
void OutputLink::Cleanup()
@@ -67,6 +68,8 @@ void OutputLink::Cleanup()
disposed = true;
}
+ // process any pending queue delete
+ qpidAddress->CleanupLink(amqpSession);
amqpSession->NotifyClosed();
}
@@ -217,7 +220,8 @@ void OutputLink::Send(AmqpMessage^ amqpMessage, TimeSpan timeout)
ManagedToNative(amqpMessage);
MessageBodyStream^ messageBodyStream = (MessageBodyStream^ ) amqpMessage->BodyStream;
- CompletionWaiter^ waiter = amqpSession->SendMessage(queue, messageBodyStream, timeout, false, nullptr, nullptr);
+ CompletionWaiter^ waiter = amqpSession->SendMessage(qpidAddress->LinkName, messageBodyStream,
+ timeout, false, nullptr, nullptr);
if (waiter != nullptr) {
waiter->WaitForCompletion();
@@ -234,7 +238,7 @@ IAsyncResult^ OutputLink::BeginSend(AmqpMessage^ amqpMessage, TimeSpan timeout,
ManagedToNative(amqpMessage);
MessageBodyStream^ messageBodyStream = (MessageBodyStream^ ) amqpMessage->BodyStream;
- CompletionWaiter^ waiter = amqpSession->SendMessage(queue, messageBodyStream, timeout, true, callback, state);
+ CompletionWaiter^ waiter = amqpSession->SendMessage(qpidAddress->LinkName, messageBodyStream, timeout, true, callback, state);
return waiter;
}