summaryrefslogtreecommitdiff
path: root/cpp/bindings/qpid/dotnet/src/Sender.cpp
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2010-05-10 20:33:19 +0000
committerTed Ross <tross@apache.org>2010-05-10 20:33:19 +0000
commit054094d1d805e5812e7c7c3a534515f57ea1c606 (patch)
tree8e8f2de1ac885232e46b7f3f40d2f5dd894c4a22 /cpp/bindings/qpid/dotnet/src/Sender.cpp
parentfe64caba89452ef43cc872c7f15faa655cc8a7da (diff)
downloadqpid-python-054094d1d805e5812e7c7c3a534515f57ea1c606.tar.gz
QPID-2589 - Applied patch from Chuck Rolke.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@942892 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/bindings/qpid/dotnet/src/Sender.cpp')
-rw-r--r--cpp/bindings/qpid/dotnet/src/Sender.cpp121
1 files changed, 121 insertions, 0 deletions
diff --git a/cpp/bindings/qpid/dotnet/src/Sender.cpp b/cpp/bindings/qpid/dotnet/src/Sender.cpp
new file mode 100644
index 0000000000..0550995970
--- /dev/null
+++ b/cpp/bindings/qpid/dotnet/src/Sender.cpp
@@ -0,0 +1,121 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you 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 <windows.h>
+#include <msclr\lock.h>
+#include <oletx2xa.h>
+#include <string>
+#include <limits>
+
+#include "qpid/messaging/Sender.h"
+#include "qpid/messaging/Session.h"
+#include "qpid/messaging/Message.h"
+
+#include "Sender.h"
+#include "Session.h"
+#include "Message.h"
+
+namespace org {
+namespace apache {
+namespace qpid {
+namespace messaging {
+
+ /// <summary>
+ /// Sender a managed wrapper for a ::qpid::messaging::Sender
+ /// </summary>
+
+ Sender::Sender(::qpid::messaging::Sender * s,
+ Session ^ sessRef) :
+ senderp(s),
+ parentSession(sessRef)
+ {
+ }
+
+
+ // Destructor
+ Sender::~Sender()
+ {
+ Cleanup();
+ }
+
+
+ // Finalizer
+ Sender::!Sender()
+ {
+ Cleanup();
+ }
+
+ // Copy constructor
+ Sender::Sender(const Sender % rhs)
+ {
+ senderp = rhs.senderp;
+ parentSession = rhs.parentSession;
+ }
+
+ // Destroys kept object
+ // TODO: add lock
+ void Sender::Cleanup()
+ {
+ if (NULL != senderp)
+ {
+ delete senderp;
+ senderp = NULL;
+ }
+ }
+
+ void Sender::send(Message ^ mmsgp)
+ {
+ senderp->::qpid::messaging::Sender::send(*((*mmsgp).messagep));
+ }
+
+ void Sender::send(Message ^ mmsgp, bool sync)
+ {
+ senderp->::qpid::messaging::Sender::send(*((*mmsgp).messagep), sync);
+ }
+
+ void Sender::setCapacity(System::UInt32 capacity)
+ {
+ senderp->setCapacity(capacity);
+ }
+
+ System::UInt32 Sender::getCapacity()
+ {
+ return senderp->getCapacity();
+ }
+
+ System::UInt32 Sender::getUnsettled()
+ {
+ return senderp->getUnsettled();
+ }
+
+ System::UInt32 Sender::getAvailable()
+ {
+ return senderp->getAvailable();
+ }
+
+ System::String ^ Sender::getName()
+ {
+ return gcnew System::String(senderp->getName().c_str());
+ }
+
+ Session ^ Sender::getSession()
+ {
+ return parentSession;
+ }
+}}}}