You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ch...@apache.org on 2011/12/21 18:56:00 UTC
svn commit: r1221824 [2/2] - /qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Receiver.cpp Wed Dec 21 17:55:59 2011
@@ -43,27 +43,36 @@ namespace Messaging {
/// Receiver is a managed wrapper for a ::qpid::messaging::Receiver
/// </summary>
+ // Disallow access if object has been destroyed.
+ void Receiver::ThrowIfDisposed()
+ {
+ if (IsDisposed)
+ throw gcnew ObjectDisposedException (GetType()->FullName);
+ }
+
+
// unmanaged clone
Receiver::Receiver(const ::qpid::messaging::Receiver & r,
- Org::Apache::Qpid::Messaging::Session ^ sessRef) :
- parentSession(sessRef)
+ Org::Apache::Qpid::Messaging::Session ^ sessRef) :
+ parentSession(sessRef)
{
System::Exception ^ newException = nullptr;
- try
- {
- receiverp = new ::qpid::messaging::Receiver (r);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Receiver (r);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
// unmanaged clone
@@ -79,60 +88,65 @@ namespace Messaging {
// Finalizer
Receiver::!Receiver()
{
- msclr::lock lk(this);
-
- if (NULL != receiverp)
+ if (NULL != nativeObjPtr)
{
- delete receiverp;
- receiverp = NULL;
+ privateLock = gcnew System::Object();
+
+ if (NULL != nativeObjPtr)
+ {
+ delete nativeObjPtr;
+ nativeObjPtr = NULL;
+ }
}
}
// Copy constructor look-alike (C#)
Receiver::Receiver(const Receiver ^ receiver) :
- parentSession(receiver->parentSession)
+ parentSession(receiver->parentSession)
{
System::Exception ^ newException = nullptr;
- try
- {
- receiverp = new ::qpid::messaging::Receiver(
- *(const_cast<Receiver ^>(receiver)->NativeReceiver));
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Receiver(
+ *(const_cast<Receiver ^>(receiver)->NativeReceiver));
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
// Copy constructor implicitly dereferenced (C++)
Receiver::Receiver(const Receiver % receiver) :
- parentSession(receiver.parentSession)
+ parentSession(receiver.parentSession)
{
System::Exception ^ newException = nullptr;
- try
- {
- receiverp = new ::qpid::messaging::Receiver(
- *(const_cast<Receiver %>(receiver).NativeReceiver));
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Receiver(
+ *(const_cast<Receiver %>(receiver).NativeReceiver));
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
@@ -143,36 +157,39 @@ namespace Messaging {
{
return Get(mmsgp, DurationConstants::FORVER);
}
-
+
bool Receiver::Get(Message ^% mmsgp, Duration ^ durationp)
{
System::Exception ^ newException = nullptr;
- try
- {
+ try
+ {
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
::qpid::messaging::Duration dur((*durationp).Milliseconds);
-
+
::qpid::messaging::Message tmpMsg;
-
- bool result = receiverp->Receiver::get(tmpMsg, dur);
-
+
+ bool result = nativeObjPtr->Receiver::get(tmpMsg, dur);
+
if (result)
{
mmsgp = gcnew Message(tmpMsg);
}
-
+
return result;
}
- catch (const ::qpid::types::Exception & error)
- {
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
return false;
}
@@ -193,17 +210,20 @@ namespace Messaging {
try
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
// translate the duration
::qpid::messaging::Duration dur((*durationp).Milliseconds);
// get the message
- ::qpid::messaging::Message msg =
- receiverp->::qpid::messaging::Receiver::get(dur);
+ ::qpid::messaging::Message msg =
+ nativeObjPtr->::qpid::messaging::Receiver::get(dur);
// create new managed message with received message embedded in it
newMessage = gcnew Message(msg);
- }
- catch (const ::qpid::types::Exception & error)
+ }
+ catch (const ::qpid::types::Exception & error)
{
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
@@ -212,16 +232,16 @@ namespace Messaging {
{
if (newException != nullptr)
{
- if (newMessage != nullptr)
- {
- delete newMessage;
- }
+ if (newMessage != nullptr)
+ {
+ delete newMessage;
+ }
}
}
if (newException != nullptr)
{
- throw newException;
- }
+ throw newException;
+ }
return newMessage;
}
@@ -233,39 +253,42 @@ namespace Messaging {
{
return Fetch(mmsgp, DurationConstants::FORVER);
}
-
+
bool Receiver::Fetch(Message ^% mmsgp, Duration ^ durationp)
{
System::Exception ^ newException = nullptr;
try
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
::qpid::messaging::Duration dur((*durationp).Milliseconds);
-
+
::qpid::messaging::Message tmpMsg;
-
- bool result = receiverp->Receiver::fetch(tmpMsg, dur);
-
+
+ bool result = nativeObjPtr->Receiver::fetch(tmpMsg, dur);
+
if (result)
{
mmsgp = gcnew Message(tmpMsg);
}
-
+
return result;
- }
- catch (const ::qpid::types::Exception & error)
+ }
+ catch (const ::qpid::types::Exception & error)
{
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
if (newException != nullptr)
{
- throw newException;
- }
+ throw newException;
+ }
return false;
}
-
+
//
// message = Fetch()
@@ -283,17 +306,20 @@ namespace Messaging {
try
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
// translate the duration
::qpid::messaging::Duration dur((*durationp).Milliseconds);
// get the message
::qpid::messaging::Message msg =
- receiverp->::qpid::messaging::Receiver::fetch(dur);
+ nativeObjPtr->::qpid::messaging::Receiver::fetch(dur);
// create new managed message with received message embedded in it
newMessage = gcnew Message(msg);
- }
- catch (const ::qpid::types::Exception & error)
+ }
+ catch (const ::qpid::types::Exception & error)
{
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
@@ -302,22 +328,25 @@ namespace Messaging {
{
if (newException != nullptr)
{
- if (newMessage != nullptr)
- {
- delete newMessage;
- }
+ if (newMessage != nullptr)
+ {
+ delete newMessage;
+ }
}
}
if (newException != nullptr)
{
- throw newException;
- }
+ throw newException;
+ }
return newMessage;
}
void Receiver::Close()
{
- receiverp->close();
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ nativeObjPtr->close();
}
}}}}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Receiver.h Wed Dec 21 17:55:59 2011
@@ -41,7 +41,7 @@ namespace Qpid {
namespace Messaging {
/// <summary>
- /// Mreceiver is a managed wrapper for a ::qpid::messaging::Receiver
+ /// Receiver is a managed wrapper for a ::qpid::messaging::Receiver
/// </summary>
ref class Session;
@@ -55,7 +55,13 @@ namespace Messaging {
Session ^ parentSession;
// The kept object in the Messaging C++ DLL
- ::qpid::messaging::Receiver * receiverp;
+ ::qpid::messaging::Receiver * nativeObjPtr;
+
+ // per-instance lock object
+ System::Object ^ privateLock;
+
+ // Disallow use after object is destroyed
+ void ThrowIfDisposed();
public:
@@ -76,24 +82,45 @@ namespace Messaging {
// assignment operator
Receiver % operator=(const Receiver % rhs)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
if (this == %rhs)
{
// Self assignment, do nothing
}
else
{
- if (NULL != receiverp)
- delete receiverp;
- receiverp = new ::qpid::messaging::Receiver(
+ if (NULL != nativeObjPtr)
+ delete nativeObjPtr;
+ nativeObjPtr = new ::qpid::messaging::Receiver(
*(const_cast<Receiver %>(rhs).NativeReceiver));
parentSession = rhs.parentSession;
}
return *this;
}
+ //
+ // IsDisposed
+ //
+ property bool IsDisposed
+ {
+ bool get()
+ {
+ return NULL == nativeObjPtr;
+ }
+ }
+
+
+ //
+ // NativeReceiver
+ //
property ::qpid::messaging::Receiver * NativeReceiver
{
- ::qpid::messaging::Receiver * get () { return receiverp; }
+ ::qpid::messaging::Receiver * get ()
+ {
+ return nativeObjPtr;
+ }
}
// Get(message)
@@ -119,12 +146,18 @@ namespace Messaging {
{
void set (System::UInt32 capacity)
{
- receiverp->setCapacity(capacity);
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ nativeObjPtr->setCapacity(capacity);
}
System::UInt32 get ()
{
- return receiverp->getCapacity();
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->getCapacity();
}
}
@@ -135,7 +168,10 @@ namespace Messaging {
{
System::UInt32 get ()
{
- return receiverp->getAvailable();
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->getAvailable();
}
}
@@ -146,12 +182,15 @@ namespace Messaging {
{
System::UInt32 get ()
{
- return receiverp->getUnsettled();
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->getUnsettled();
}
}
void Close();
-
+
//
// IsClosed
//
@@ -159,7 +198,10 @@ namespace Messaging {
{
System::Boolean get ()
{
- return receiverp->isClosed();
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->isClosed();
}
}
@@ -170,7 +212,10 @@ namespace Messaging {
{
System::String ^ get ()
{
- return gcnew System::String(receiverp->getName().c_str());
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return gcnew System::String(nativeObjPtr->getName().c_str());
}
}
@@ -181,6 +226,9 @@ namespace Messaging {
{
Org::Apache::Qpid::Messaging::Session ^ get ()
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
return parentSession;
}
}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Sender.cpp Wed Dec 21 17:55:59 2011
@@ -37,30 +37,39 @@ namespace Qpid {
namespace Messaging {
/// <summary>
- /// Sender a managed wrapper for a ::qpid::messaging::Sender
+ /// Sender a managed wrapper for a ::qpid::messaging::Sender
/// </summary>
+ // Disallow access if object has been destroyed.
+ void Sender::ThrowIfDisposed()
+ {
+ if (IsDisposed)
+ throw gcnew ObjectDisposedException (GetType()->FullName);
+ }
+
+
// unmanaged clone
Sender::Sender(const ::qpid::messaging::Sender & s,
- Org::Apache::Qpid::Messaging::Session ^ sessRef) :
- parentSession(sessRef)
+ Org::Apache::Qpid::Messaging::Session ^ sessRef) :
+ parentSession(sessRef)
{
System::Exception ^ newException = nullptr;
- try
- {
- senderp = new ::qpid::messaging::Sender (s);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Sender (s);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
@@ -74,12 +83,15 @@ namespace Messaging {
// Finalizer
Sender::!Sender()
{
- msclr::lock lk(this);
-
- if (NULL != senderp)
+ if (NULL != nativeObjPtr)
{
- delete senderp;
- senderp = NULL;
+ privateLock = gcnew System::Object();
+
+ if (NULL != nativeObjPtr)
+ {
+ delete nativeObjPtr;
+ nativeObjPtr = NULL;
+ }
}
}
@@ -90,21 +102,22 @@ namespace Messaging {
{
System::Exception ^ newException = nullptr;
- try
- {
- senderp = new ::qpid::messaging::Sender(
- *(const_cast<Sender ^>(sender)->NativeSender));
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Sender(
+ *(const_cast<Sender ^>(sender)->NativeSender));
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
// Copy constructor implicitly dereferenced (C++)
@@ -113,21 +126,22 @@ namespace Messaging {
{
System::Exception ^ newException = nullptr;
- try
- {
- senderp = new ::qpid::messaging::Sender(
- *(const_cast<Sender %>(sender).NativeSender));
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Sender(
+ *(const_cast<Sender %>(sender).NativeSender));
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
@@ -141,42 +155,48 @@ namespace Messaging {
void Sender::Send(Message ^ mmsgp, bool sync)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- senderp->::qpid::messaging::Sender::send(*((*mmsgp).NativeMessage), sync);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->::qpid::messaging::Sender::send(*((*mmsgp).NativeMessage), sync);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Sender::Close()
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- senderp->close();
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->close();
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
}}}}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Sender.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Sender.h?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Sender.h (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Sender.h Wed Dec 21 17:55:59 2011
@@ -40,7 +40,7 @@ namespace Qpid {
namespace Messaging {
/// <summary>
- /// Sender is a managed wrapper for a ::qpid::messaging::Sender
+ /// Sender is a managed wrapper for a ::qpid::messaging::Sender
/// </summary>
ref class Session;
@@ -50,16 +50,22 @@ namespace Messaging {
{
private:
// The kept object in the Messaging C++ DLL
- ::qpid::messaging::Sender * senderp;
+ ::qpid::messaging::Sender * nativeObjPtr;
// The session that created this Sender
Session ^ parentSession;
+ // per-instance lock object
+ System::Object ^ privateLock;
+
+ // Disallow use after object is destroyed
+ void ThrowIfDisposed();
+
public:
// unmanaged clone
Sender(const ::qpid::messaging::Sender & s,
Session ^ sessRef);
-
+
// copy constructor
Sender(const Sender ^ sender);
Sender(const Sender % sender);
@@ -70,24 +76,45 @@ namespace Messaging {
// assignment operator
Sender % operator=(const Sender % rhs)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
if (this == %rhs)
{
// Self assignment, do nothing
}
else
{
- if (NULL != senderp)
- delete senderp;
- senderp = new ::qpid::messaging::Sender(
+ if (NULL != nativeObjPtr)
+ delete nativeObjPtr;
+ nativeObjPtr = new ::qpid::messaging::Sender(
*(const_cast<Sender %>(rhs).NativeSender));
parentSession = rhs.parentSession;
}
return *this;
}
+ //
+ // IsDisposed
+ //
+ property bool IsDisposed
+ {
+ bool get()
+ {
+ return NULL == nativeObjPtr;
+ }
+ }
+
+
+ //
+ // NativeSender
+ //
property ::qpid::messaging::Sender * NativeSender
{
- ::qpid::messaging::Sender * get () { return senderp; }
+ ::qpid::messaging::Sender * get ()
+ {
+ return nativeObjPtr;
+ }
}
@@ -99,25 +126,52 @@ namespace Messaging {
property System::UInt32 Capacity
{
- System::UInt32 get () { return senderp->getCapacity(); }
- void set (System::UInt32 capacity) { senderp->setCapacity(capacity); }
+ System::UInt32 get ()
+ {
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->getCapacity();
+ }
+ void set (System::UInt32 capacity)
+ {
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ nativeObjPtr->setCapacity(capacity);
+ }
}
property System::UInt32 Unsettled
{
- System::UInt32 get () { return senderp->getUnsettled(); }
+ System::UInt32 get ()
+ {
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->getUnsettled();
+ }
}
property System::UInt32 Available
{
- System::UInt32 get () { return senderp->getAvailable(); }
+ System::UInt32 get ()
+ {
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->getAvailable();
+ }
}
property System::String ^ Name
{
System::String ^ get ()
{
- return gcnew System::String(senderp->getName().c_str());
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return gcnew System::String(nativeObjPtr->getName().c_str());
}
}
@@ -128,6 +182,9 @@ namespace Messaging {
{
Org::Apache::Qpid::Messaging::Session ^ get ()
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
return parentSession;
}
}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp Wed Dec 21 17:55:59 2011
@@ -45,27 +45,36 @@ namespace Messaging {
/// Session is a managed wrapper for a ::qpid::messaging::Session
/// </summary>
+ // Disallow access if object has been destroyed.
+ void Session::ThrowIfDisposed()
+ {
+ if (IsDisposed)
+ throw gcnew ObjectDisposedException (GetType()->FullName);
+ }
+
+
// unmanaged clone
- Session::Session(const ::qpid::messaging::Session & session,
- Org::Apache::Qpid::Messaging::Connection ^ connRef) :
- parentConnectionp(connRef)
+ Session::Session(const ::qpid::messaging::Session & session,
+ Org::Apache::Qpid::Messaging::Connection ^ connRef) :
+ parentConnectionp(connRef)
{
System::Exception ^ newException = nullptr;
- try
- {
- sessionp = new ::qpid::messaging::Session (session);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Session (session);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
@@ -79,12 +88,15 @@ namespace Messaging {
// Finalizer
Session::!Session()
{
- msclr::lock lk(this);
-
- if (NULL != sessionp)
+ if (NULL != nativeObjPtr)
{
- delete sessionp;
- sessionp = NULL;
+ privateLock = gcnew System::Object();
+
+ if (NULL != nativeObjPtr)
+ {
+ delete nativeObjPtr;
+ nativeObjPtr = NULL;
+ }
}
}
@@ -95,22 +107,23 @@ namespace Messaging {
{
System::Exception ^ newException = nullptr;
- try
- {
- sessionp = new ::qpid::messaging::Session(
- *(const_cast<Session ^>(session)->NativeSession));
-
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Session(
+ *(const_cast<Session ^>(session)->NativeSession));
+
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
// Copy constructor implicitly dereferenced (C++)
@@ -119,83 +132,93 @@ namespace Messaging {
{
System::Exception ^ newException = nullptr;
- try
- {
- sessionp = new ::qpid::messaging::Session(
- *(const_cast<Session %>(session).NativeSession));
-
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ privateLock = gcnew System::Object();
+ nativeObjPtr = new ::qpid::messaging::Session(
+ *(const_cast<Session %>(session).NativeSession));
+
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::Close()
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->close();
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->close();
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::Commit()
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->commit();
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->commit();
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::Rollback()
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->rollback();
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->rollback();
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::Acknowledge()
@@ -205,22 +228,25 @@ namespace Messaging {
void Session::Acknowledge(bool sync)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->acknowledge(sync);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->acknowledge(sync);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::Acknowledge(Message ^ message)
@@ -230,22 +256,25 @@ namespace Messaging {
void Session::Acknowledge(Message ^ message, bool sync)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->acknowledge(*(message->NativeMessage), sync);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->acknowledge(*(message->NativeMessage), sync);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::AcknowledgeUpTo(Message ^ message)
@@ -255,62 +284,71 @@ namespace Messaging {
void Session::AcknowledgeUpTo(Message ^ message, bool sync)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->acknowledgeUpTo(*(message->NativeMessage), sync);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->acknowledgeUpTo(*(message->NativeMessage), sync);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::Reject(Message ^ message)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->::qpid::messaging::Session::reject(*(message->NativeMessage));
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->::qpid::messaging::Session::reject(*(message->NativeMessage));
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::Release(Message ^ message)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->::qpid::messaging::Session::release(*(message->NativeMessage));
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->::qpid::messaging::Session::release(*(message->NativeMessage));
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
void Session::Sync()
@@ -320,22 +358,25 @@ namespace Messaging {
void Session::Sync(bool block)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->sync(block);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->sync(block);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
// next(receiver)
@@ -346,18 +387,21 @@ namespace Messaging {
bool Session::NextReceiver(Receiver ^ rcvr, Duration ^ timeout)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- // create a duration object
+ try
+ {
+ // create a duration object
::qpid::messaging::Duration dur(timeout->Milliseconds);
- // wait for the next received message
- return sessionp->nextReceiver(*(rcvr->NativeReceiver), dur);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ // wait for the next received message
+ return nativeObjPtr->nextReceiver(*(rcvr->NativeReceiver), dur);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
if ("No message to fetch" == errmsg){
return false;
@@ -365,10 +409,10 @@ namespace Messaging {
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
return true;
}
@@ -381,19 +425,22 @@ namespace Messaging {
Receiver ^ Session::NextReceiver(Duration ^ timeout)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
try
{
::qpid::messaging::Duration dur(timeout->Milliseconds);
- ::qpid::messaging::Receiver receiver = sessionp->::qpid::messaging::Session::nextReceiver(dur);
+ ::qpid::messaging::Receiver receiver = nativeObjPtr->::qpid::messaging::Session::nextReceiver(dur);
Receiver ^ newRcvr = gcnew Receiver(receiver, this);
return newRcvr;
- }
- catch (const ::qpid::types::Exception & error)
+ }
+ catch (const ::qpid::types::Exception & error)
{
String ^ errmsg = gcnew String(error.what());
if ("No message to fetch" == errmsg)
@@ -403,30 +450,33 @@ namespace Messaging {
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
- return nullptr;
+ return nullptr;
}
Sender ^ Session::CreateSender (System::String ^ address)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
Sender ^ newSender = nullptr;
try
{
// create the sender
- ::qpid::messaging::Sender sender =
- sessionp->::qpid::messaging::Session::createSender(QpidMarshal::ToNative(address));
+ ::qpid::messaging::Sender sender =
+ nativeObjPtr->::qpid::messaging::Session::createSender(QpidMarshal::ToNative(address));
// create a managed sender
newSender = gcnew Sender(sender, this);
- }
- catch (const ::qpid::types::Exception & error)
+ }
+ catch (const ::qpid::types::Exception & error)
{
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
@@ -435,16 +485,16 @@ namespace Messaging {
{
if (newException != nullptr)
{
- if (newSender != nullptr)
- {
- delete newSender;
- }
+ if (newSender != nullptr)
+ {
+ delete newSender;
+ }
}
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
return newSender;
}
@@ -452,19 +502,22 @@ namespace Messaging {
Sender ^ Session::CreateSender (Address ^ address)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
Sender ^ newSender = nullptr;
try
{
// allocate a native sender
- ::qpid::messaging::Sender sender =
- sessionp->::qpid::messaging::Session::createSender(*(address->NativeAddress));
+ ::qpid::messaging::Sender sender =
+ nativeObjPtr->::qpid::messaging::Session::createSender(*(address->NativeAddress));
// create a managed sender
newSender = gcnew Sender(sender, this);
- }
- catch (const ::qpid::types::Exception & error)
+ }
+ catch (const ::qpid::types::Exception & error)
{
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
@@ -473,92 +526,98 @@ namespace Messaging {
{
if (newException != nullptr)
{
- if (newSender != nullptr)
- {
- delete newSender;
- }
+ if (newSender != nullptr)
+ {
+ delete newSender;
+ }
}
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
return newSender;
}
- Receiver ^ Session::CreateReceiver(System::String ^ address)
+ Receiver ^ Session::CreateReceiver(System::String ^ address)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
Receiver ^ newReceiver = nullptr;
- try
- {
+ try
+ {
// create the receiver
- ::qpid::messaging::Receiver receiver =
- sessionp->createReceiver(QpidMarshal::ToNative(address));
+ ::qpid::messaging::Receiver receiver =
+ nativeObjPtr->createReceiver(QpidMarshal::ToNative(address));
// create a managed receiver
newReceiver = gcnew Receiver(receiver, this);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- finally
- {
+ finally
+ {
if (newException != nullptr)
- {
- if (newReceiver != nullptr)
- {
- delete newReceiver;
- }
+ {
+ if (newReceiver != nullptr)
+ {
+ delete newReceiver;
+ }
}
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
return newReceiver;
}
- Receiver ^ Session::CreateReceiver(Address ^ address)
+ Receiver ^ Session::CreateReceiver(Address ^ address)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
Receiver ^ newReceiver = nullptr;
- try
- {
+ try
+ {
// create the receiver
::qpid::messaging::Receiver receiver =
- sessionp->createReceiver(*(address->NativeAddress));
+ nativeObjPtr->createReceiver(*(address->NativeAddress));
// create a managed receiver
newReceiver = gcnew Receiver(receiver, this);
- }
- catch (const ::qpid::types::Exception & error)
- {
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- finally
- {
+ finally
+ {
if (newException != nullptr)
- {
- if (newReceiver != nullptr)
- {
- delete newReceiver;
- }
+ {
+ if (newReceiver != nullptr)
+ {
+ delete newReceiver;
+ }
}
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
return newReceiver;
}
@@ -566,35 +625,38 @@ namespace Messaging {
Sender ^ Session::GetSender(System::String ^ name)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
Sender ^ newSender = nullptr;
try
{
- ::qpid::messaging::Sender senderp =
- sessionp->::qpid::messaging::Session::getSender(QpidMarshal::ToNative(name));
+ ::qpid::messaging::Sender senderp =
+ nativeObjPtr->::qpid::messaging::Session::getSender(QpidMarshal::ToNative(name));
newSender = gcnew Sender(senderp, this);
- }
- catch (const ::qpid::types::Exception & error)
+ }
+ catch (const ::qpid::types::Exception & error)
{
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- finally
- {
+ finally
+ {
if (newException != nullptr)
- {
- if (newSender != nullptr)
- {
- delete newSender;
- }
+ {
+ if (newSender != nullptr)
+ {
+ delete newSender;
+ }
}
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
return newSender;
}
@@ -603,35 +665,38 @@ namespace Messaging {
Receiver ^ Session::GetReceiver(System::String ^ name)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
Receiver ^ newReceiver = nullptr;
try
{
- ::qpid::messaging::Receiver receiver =
- sessionp->::qpid::messaging::Session::getReceiver(QpidMarshal::ToNative(name));
+ ::qpid::messaging::Receiver receiver =
+ nativeObjPtr->::qpid::messaging::Session::getReceiver(QpidMarshal::ToNative(name));
newReceiver = gcnew Receiver(receiver, this);
- }
- catch (const ::qpid::types::Exception & error)
+ }
+ catch (const ::qpid::types::Exception & error)
{
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- finally
- {
+ finally
+ {
if (newException != nullptr)
- {
- if (newReceiver != nullptr)
- {
- delete newReceiver;
- }
+ {
+ if (newReceiver != nullptr)
+ {
+ delete newReceiver;
+ }
}
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
return newReceiver;
}
@@ -640,21 +705,24 @@ namespace Messaging {
void Session::CheckError()
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
System::Exception ^ newException = nullptr;
- try
- {
- sessionp->checkError();
- }
- catch (const ::qpid::types::Exception & error)
- {
+ try
+ {
+ nativeObjPtr->checkError();
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
String ^ errmsg = gcnew String(error.what());
newException = gcnew QpidException(errmsg);
}
- if (newException != nullptr)
- {
- throw newException;
- }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
}
}}}}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.h?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.h (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.h Wed Dec 21 17:55:59 2011
@@ -45,7 +45,7 @@ namespace Messaging {
/// Session is a managed wrapper for a ::qpid::messaging::Session
/// </summary>
- ref class Address;
+ ref class Address;
ref class Connection;
ref class Duration;
ref class Receiver;
@@ -56,15 +56,21 @@ namespace Messaging {
{
private:
// The kept object in the Messaging C++ DLL
- ::qpid::messaging::Session * sessionp;
+ ::qpid::messaging::Session * nativeObjPtr;
// The connection that created this session
Connection ^ parentConnectionp;
+ // per-instance lock object
+ System::Object ^ privateLock;
+
+ // Disallow use after object is destroyed
+ void ThrowIfDisposed();
+
public:
// unmanaged clone
- Session(const ::qpid::messaging::Session & sessionp,
+ Session(const ::qpid::messaging::Session & nativeObjPtr,
Connection ^ connRef);
// copy constructor
@@ -77,24 +83,45 @@ namespace Messaging {
// assignment operator
Session % operator=(const Session % rhs)
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
if (this == %rhs)
{
// Self assignment, do nothing
}
else
{
- if (NULL != sessionp)
- delete sessionp;
- sessionp = new ::qpid::messaging::Session(
+ if (NULL != nativeObjPtr)
+ delete nativeObjPtr;
+ nativeObjPtr = new ::qpid::messaging::Session(
*(const_cast<Session %>(rhs).NativeSession) );
parentConnectionp = rhs.parentConnectionp;
}
return *this;
}
+ //
+ // IsDisposed
+ //
+ property bool IsDisposed
+ {
+ bool get()
+ {
+ return NULL == nativeObjPtr;
+ }
+ }
+
+
+ //
+ // NativeSession
+ //
property ::qpid::messaging::Session * NativeSession
{
- ::qpid::messaging::Session * get () { return sessionp; }
+ ::qpid::messaging::Session * get ()
+ {
+ return nativeObjPtr;
+ }
}
void Close();
@@ -113,12 +140,24 @@ namespace Messaging {
property System::UInt32 Receivable
{
- System::UInt32 get () { return sessionp->getReceivable(); }
+ System::UInt32 get ()
+ {
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->getReceivable();
+ }
}
property System::UInt32 UnsettledAcks
{
- System::UInt32 get () { return sessionp->getUnsettledAcks(); }
+ System::UInt32 get ()
+ {
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->getUnsettledAcks();
+ }
}
// next(receiver)
@@ -131,10 +170,10 @@ namespace Messaging {
Sender ^ CreateSender(System::String ^ address);
- Sender ^ CreateSender(Address ^ address);
+ Sender ^ CreateSender(Address ^ address);
Receiver ^ CreateReceiver(System::String ^ address);
- Receiver ^ CreateReceiver(Address ^ address);
+ Receiver ^ CreateReceiver(Address ^ address);
Sender ^ GetSender(System::String ^ name);
Receiver ^ GetReceiver(System::String ^ name);
@@ -143,6 +182,9 @@ namespace Messaging {
{
Org::Apache::Qpid::Messaging::Connection ^ get ()
{
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
return parentConnectionp;
}
}
@@ -150,7 +192,13 @@ namespace Messaging {
property System::Boolean HasError
{
- System::Boolean get () { return sessionp->hasError(); }
+ System::Boolean get ()
+ {
+ msclr::lock lk(privateLock);
+ ThrowIfDisposed();
+
+ return nativeObjPtr->hasError();
+ }
}
void CheckError();
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.cpp Wed Dec 21 17:55:59 2011
@@ -43,11 +43,11 @@ namespace Messaging {
// Add its elements to the qpid map.
//
void TypeTranslator::ManagedToNative(QpidMap ^ theDictionary,
- ::qpid::types::Variant::Map & qpidMap)
+ ::qpid::types::Variant::Map & qpidMap)
{
// iterate the items, converting each to a variant and adding to the map
for each (System::Collections::Generic::KeyValuePair
- <System::String^, System::Object^> kvp in theDictionary)
+ <System::String^, System::Object^> kvp in theDictionary)
{
if (QpidTypeCheck::ObjectIsMap(kvp.Value))
{
@@ -108,7 +108,7 @@ namespace Messaging {
// Add its elements to the qpid list.
//
void TypeTranslator::ManagedToNative(QpidList ^ theList,
- ::qpid::types::Variant::List & qpidList)
+ ::qpid::types::Variant::List & qpidList)
{
// iterate the items, converting each to a variant and adding to the map
for each (System::Object ^ listObj in theList)
@@ -162,7 +162,7 @@ namespace Messaging {
// Returns a variant representing simple native type object.
// Not to be called for Map/List objects.
//
- void TypeTranslator::ManagedToNativeObject(System::Object ^ managedValue,
+ void TypeTranslator::ManagedToNativeObject(System::Object ^ managedValue,
::qpid::types::Variant & qpidVariant)
{
System::Type ^ typeP = (*managedValue).GetType();
@@ -171,7 +171,7 @@ namespace Messaging {
switch (typeCode)
{
case System::TypeCode::Boolean :
- qpidVariant = System::Convert::ToBoolean(managedValue, System::Globalization::CultureInfo::InvariantCulture);
+ qpidVariant = System::Convert::ToBoolean(managedValue, System::Globalization::CultureInfo::InvariantCulture);
break;
case System::TypeCode::Byte :
@@ -258,9 +258,9 @@ namespace Messaging {
// extract the qpid elements and put them into the dictionary.
//
void TypeTranslator::NativeToManaged(::qpid::types::Variant::Map & qpidMap,
- QpidMap ^ dict)
+ QpidMap ^ dict)
{
- // For each object in the message map,
+ // For each object in the message map,
// create a .NET object and add it to the dictionary.
for (::qpid::types::Variant::Map::const_iterator i = qpidMap.begin(); i != qpidMap.end(); ++i) {
// Get the name
@@ -278,47 +278,47 @@ namespace Messaging {
case ::qpid::types::VAR_BOOL:
dict[elementName] = variant.asBool();
break;
-
+
case ::qpid::types::VAR_UINT8:
dict[elementName] = variant.asUint8();
break;
-
+
case ::qpid::types::VAR_UINT16:
dict[elementName] = variant.asUint16();
break;
-
+
case ::qpid::types::VAR_UINT32:
dict[elementName] = variant.asUint32();
break;
-
+
case ::qpid::types::VAR_UINT64:
dict[elementName] = variant.asUint64();
break;
-
+
case ::qpid::types::VAR_INT8:
dict[elementName] = variant.asInt8();
break;
-
+
case ::qpid::types::VAR_INT16:
dict[elementName] = variant.asInt16();
break;
-
+
case ::qpid::types::VAR_INT32:
dict[elementName] = variant.asInt32();
break;
-
+
case ::qpid::types::VAR_INT64:
dict[elementName] = variant.asInt64();
break;
-
+
case ::qpid::types::VAR_FLOAT:
dict[elementName] = variant.asFloat();
break;
-
+
case ::qpid::types::VAR_DOUBLE:
dict[elementName] = variant.asDouble();
break;
-
+
case ::qpid::types::VAR_STRING:
{
System::String ^ elementValue = gcnew System::String(variant.asString().c_str());
@@ -344,7 +344,7 @@ namespace Messaging {
dict[elementName] = newList;
break;
}
-
+
case ::qpid::types::VAR_UUID:
{
System::String ^ elementValue = gcnew System::String(variant.asUuid().str().c_str());
@@ -359,9 +359,9 @@ namespace Messaging {
void TypeTranslator::NativeToManaged(::qpid::types::Variant::List & qpidList, QpidList ^ managedList)
{
- // For each object in the qpidList
+ // For each object in the qpidList
// create a .NET object and add it to the managed List.
- for (::qpid::types::Variant::List::const_iterator i = qpidList.begin(); i != qpidList.end(); ++i)
+ for (::qpid::types::Variant::List::const_iterator i = qpidList.begin(); i != qpidList.end(); ++i)
{
::qpid::types::Variant variant = *i;
::qpid::types::VariantType vType = variant.getType();
@@ -375,47 +375,47 @@ namespace Messaging {
case ::qpid::types::VAR_BOOL:
(*managedList).Add(variant.asBool());
break;
-
+
case ::qpid::types::VAR_UINT8:
(*managedList).Add(variant.asUint8());
break;
-
+
case ::qpid::types::VAR_UINT16:
(*managedList).Add(variant.asUint16());
break;
-
+
case ::qpid::types::VAR_UINT32:
(*managedList).Add(variant.asUint32());
break;
-
+
case ::qpid::types::VAR_UINT64:
(*managedList).Add(variant.asUint64());
break;
-
+
case ::qpid::types::VAR_INT8:
(*managedList).Add(variant.asInt8());
break;
-
+
case ::qpid::types::VAR_INT16:
(*managedList).Add(variant.asInt16());
break;
-
+
case ::qpid::types::VAR_INT32:
(*managedList).Add(variant.asInt32());
break;
-
+
case ::qpid::types::VAR_INT64:
(*managedList).Add(variant.asInt64());
break;
-
+
case ::qpid::types::VAR_FLOAT:
(*managedList).Add(variant.asFloat());
break;
-
+
case ::qpid::types::VAR_DOUBLE:
(*managedList).Add(variant.asDouble());
break;
-
+
case ::qpid::types::VAR_STRING:
{
System::String ^ elementValue = gcnew System::String(variant.asString().c_str());
@@ -441,7 +441,7 @@ namespace Messaging {
(*managedList).Add(newList);
break;
}
-
+
case ::qpid::types::VAR_UUID:
{
System::String ^ elementValue = gcnew System::String(variant.asUuid().str().c_str());
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/TypeTranslator.h Wed Dec 21 17:55:59 2011
@@ -39,19 +39,19 @@ namespace Messaging {
/// </summary>
public ref class TypeTranslator sealed
{
- private:
- TypeTranslator::TypeTranslator() {}
+ private:
+ TypeTranslator::TypeTranslator() {}
public:
// The given object is a managed Dictionary.
// Add its elements to the qpid map.
static void ManagedToNative(QpidMap ^ theDictionary,
- ::qpid::types::Variant::Map & qpidMap);
+ ::qpid::types::Variant::Map & qpidMap);
// The given object is a managed List.
// Add its elements to the qpid list.
static void ManagedToNative(QpidList ^ theList,
- ::qpid::types::Variant::List & qpidList);
+ ::qpid::types::Variant::List & qpidList);
// The given object is a simple managed type (not a Dictionary or List)
// Returns a variant representing simple native type object.
@@ -61,11 +61,11 @@ namespace Messaging {
// The given object is a qpid map.
// Add its elements to the managed Dictionary.
static void NativeToManaged(::qpid::types::Variant::Map & qpidMap,
- QpidMap ^ dict);
+ QpidMap ^ dict);
// The given object is a qpid list.
// Add its elements to the managed List.
static void NativeToManaged(::qpid::types::Variant::List & qpidList,
- QpidList ^ managedList);
+ QpidList ^ managedList);
};
}}}}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/resource1.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/resource1.h?rev=1221824&r1=1221823&r2=1221824&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/resource1.h (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/resource1.h Wed Dec 21 17:55:59 2011
@@ -23,7 +23,7 @@
// Used by org.apache.qpid.messaging.rc
// Next default values for new objects
-//
+//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org