summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/dotnet/src/Receiver.cpp
diff options
context:
space:
mode:
authorCharles E. Rolke <chug@apache.org>2011-01-03 16:59:39 +0000
committerCharles E. Rolke <chug@apache.org>2011-01-03 16:59:39 +0000
commitb2c164cc932af306f4f74f306b680194e44b3dcf (patch)
tree1ee1f6169f668df955e7b3e310b9ba7e6ba1c23a /cpp/bindings/qpid/dotnet/src/Receiver.cpp
parentc3d6047e94210bd35f7c35b9bba0bc2e60841fa7 (diff)
downloadqpid-python-b2c164cc932af306f4f74f306b680194e44b3dcf.tar.gz
.NET Binding for Qpid Messaging:
Add the boolean variation of Get() and Fetch(). Modify drain example to use the boolean Fetch. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1054684 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/bindings/qpid/dotnet/src/Receiver.cpp')
-rw-r--r--cpp/bindings/qpid/dotnet/src/Receiver.cpp109
1 files changed, 73 insertions, 36 deletions
diff --git a/cpp/bindings/qpid/dotnet/src/Receiver.cpp b/cpp/bindings/qpid/dotnet/src/Receiver.cpp
index ea612861e5..4c9062866d 100644
--- a/cpp/bindings/qpid/dotnet/src/Receiver.cpp
+++ b/cpp/bindings/qpid/dotnet/src/Receiver.cpp
@@ -121,24 +121,43 @@ namespace Messaging {
//
// Get(message)
//
- // TBD
- //bool Receiver::Get(Message ^ mmsgp)
- //{
- // return Get(mmsgp, DurationConstants::FORVER);
- //}
- //
- //bool Receiver::Get(Message ^ mmsgp, Duration ^ durationp)
- //{
- // ::qpid::messaging::Duration dur((*durationp).Milliseconds);
- //
- // ::qpid::messaging::Message tmpMsg;
- //
- // bool result = receiverp->Receiver::get(tmpMsg, dur);
- //
- // mmsgp = gcnew Message(tmpMsg);
- //
- // return result;
- //}
+ bool Receiver::Get(Message ^% mmsgp)
+ {
+ return Get(mmsgp, DurationConstants::FORVER);
+ }
+
+ bool Receiver::Get(Message ^% mmsgp, Duration ^ durationp)
+ {
+ System::Exception ^ newException = nullptr;
+
+ try
+ {
+ ::qpid::messaging::Duration dur((*durationp).Milliseconds);
+
+ ::qpid::messaging::Message tmpMsg;
+
+ bool result = receiverp->Receiver::get(tmpMsg, dur);
+
+ if (result)
+ {
+ mmsgp = gcnew Message(tmpMsg);
+ }
+
+ return result;
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
+ String ^ errmsg = gcnew String(error.what());
+ newException = gcnew QpidException(errmsg);
+ }
+
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
+
+ return false;
+ }
//
// message = Get()
@@ -192,24 +211,42 @@ namespace Messaging {
//
// Fetch(message)
//
- // TBD
- //bool Receiver::Fetch(Message ^ mmsgp)
- //{
- // return Fetch(mmsgp, DurationConstants::FORVER);
- //}
- //
- //bool Receiver::Fetch(Message ^ mmsgp, Duration ^ durationp)
- //{
- // ::qpid::messaging::Duration dur((*durationp).Milliseconds);
- //
- // ::qpid::messaging::Message tmpMsg;
- //
- // bool result = receiverp->Receiver::fetch(tmpMsg, dur);
- //
- // mmsgp = gcnew Message(tmpMsg);
- //
- // return result;
- //}
+ bool Receiver::Fetch(Message ^% mmsgp)
+ {
+ return Fetch(mmsgp, DurationConstants::FORVER);
+ }
+
+ bool Receiver::Fetch(Message ^% mmsgp, Duration ^ durationp)
+ {
+ System::Exception ^ newException = nullptr;
+
+ try
+ {
+ ::qpid::messaging::Duration dur((*durationp).Milliseconds);
+
+ ::qpid::messaging::Message tmpMsg;
+
+ bool result = receiverp->Receiver::fetch(tmpMsg, dur);
+
+ if (result)
+ {
+ mmsgp = gcnew Message(tmpMsg);
+ }
+
+ return result;
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
+ String ^ errmsg = gcnew String(error.what());
+ newException = gcnew QpidException(errmsg);
+ }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
+
+ return false;
+ }
//