diff options
| author | Ted Ross <tross@apache.org> | 2010-05-10 20:33:19 +0000 |
|---|---|---|
| committer | Ted Ross <tross@apache.org> | 2010-05-10 20:33:19 +0000 |
| commit | 054094d1d805e5812e7c7c3a534515f57ea1c606 (patch) | |
| tree | 8e8f2de1ac885232e46b7f3f40d2f5dd894c4a22 /cpp/bindings/qpid/dotnet/src/Connection.cpp | |
| parent | fe64caba89452ef43cc872c7f15faa655cc8a7da (diff) | |
| download | qpid-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/Connection.cpp')
| -rw-r--r-- | cpp/bindings/qpid/dotnet/src/Connection.cpp | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/cpp/bindings/qpid/dotnet/src/Connection.cpp b/cpp/bindings/qpid/dotnet/src/Connection.cpp new file mode 100644 index 0000000000..58b93f6b24 --- /dev/null +++ b/cpp/bindings/qpid/dotnet/src/Connection.cpp @@ -0,0 +1,115 @@ +/*
+* 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/Connection.h"
+#include "qpid/messaging/Session.h"
+
+#include "QpidMarshal.h"
+#include "Connection.h"
+#include "Session.h"
+
+namespace org {
+namespace apache {
+namespace qpid {
+namespace messaging {
+
+ /// <summary>
+ /// Connection is a managed wrapper for a qpid::messaging::Connection
+ /// </summary>
+
+ // Public constructor
+ Connection::Connection(System::String ^ url) :
+ connectionp(new ::qpid::messaging::Connection(QpidMarshal::ToNative(url)))
+ {
+ }
+
+ Connection::Connection(System::String ^ url, System::String ^ options) :
+ connectionp(new ::qpid::messaging::Connection(QpidMarshal::ToNative(url),
+ QpidMarshal::ToNative(options)))
+ {
+ }
+
+
+ // Destructor
+ Connection::~Connection()
+ {
+ Cleanup();
+ }
+
+
+ // Finalizer
+ Connection::!Connection()
+ {
+ Cleanup();
+ }
+
+
+ // Destroys kept object
+ // TODO: add lock
+ void Connection::Cleanup()
+ {
+ if (NULL != connectionp)
+ {
+ delete connectionp;
+ connectionp = NULL;
+ }
+ }
+
+ Session ^ Connection::createSession()
+ {
+ return createSession("");
+ }
+
+
+ Session ^ Connection::createSession(System::String ^ name)
+ {
+ // allocate native session
+ ::qpid::messaging::Session * sessionp = new ::qpid::messaging::Session;
+
+ // create native session
+ *sessionp = connectionp->createSession(QpidMarshal::ToNative(name));
+
+ // create managed session
+ Session ^ newSession = gcnew Session(sessionp, this);
+
+ return newSession;
+ }
+
+
+ void Connection::open()
+ {
+ connectionp->open();
+ }
+
+ bool Connection::isOpen()
+ {
+ return connectionp->isOpen();
+ }
+
+ void Connection::close()
+ {
+ connectionp->close();
+ }
+}}}}
|
