You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2010/06/15 19:51:11 UTC
svn commit: r954983 [2/2] - in /qpid/trunk/qpid/cpp/bindings/qpid/dotnet: ./
examples/csharp.direct.receiver/ examples/csharp.direct.sender/
examples/csharp.example.client/ examples/csharp.example.client/Properties/
examples/csharp.example.declare_queu...
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln?rev=954983&r1=954982&r2=954983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/org.apache.qpid.messaging.sln Tue Jun 15 17:51:10 2010
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "org.apache.qpid.messaging", "src\org.apache.qpid.messaging.vcproj", "{AA5A3B83-5F98-406D-A01C-5A921467A57D}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Org.Apache.Qpid.Messaging", "src\org.apache.qpid.messaging.vcproj", "{AA5A3B83-5F98-406D-A01C-5A921467A57D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{34C477FB-B0CC-4AB9-A346-EA7B055469AC}"
EndProject
@@ -43,6 +43,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.map.callback.sender", "examples\csharp.map.callback.sender\csharp.map.callback.sender.csproj", "{12F1C14F-5C7D-4075-9BAE-C091394FF99A}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Client-Server", "Client-Server", "{9232212E-F3C6-4D18-8D25-0C31DD5FF3DB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.client", "examples\csharp.example.client\csharp.example.client.csproj", "{0DE01712-C2D1-4CA4-B42C-5856456A8696}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.server", "examples\csharp.example.server\csharp.example.server.csproj", "{090A081D-E8B5-4949-AA43-EE182B7101E3}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Drain-Spout", "Drain-Spout", "{89CE04CB-21DE-4ABB-9236-50529DD8C022}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.drain", "examples\csharp.example.drain\csharp.example.drain.csproj", "{C43DEB69-8088-420B-B0CA-C699535E6D08}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.spout", "examples\csharp.example.spout\csharp.example.spout.csproj", "{EB36626D-36C2-41B3-B65E-762BAF27F137}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "csharp.example.declare_queues", "examples\csharp.example.declare_queues\csharp.example.declare_queues.csproj", "{E31B349C-830C-4583-8BD9-30DA4398349F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -180,6 +194,76 @@ Global
{12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|Win32.ActiveCfg = Release|Any CPU
{12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.ActiveCfg = Release|x86
{12F1C14F-5C7D-4075-9BAE-C091394FF99A}.Release|x86.Build.0 = Release|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|Win32.ActiveCfg = Debug|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x86.ActiveCfg = Debug|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Debug|x86.Build.0 = Debug|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Mixed Platforms.Build.0 = Release|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|Win32.ActiveCfg = Release|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x86.ActiveCfg = Release|x86
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696}.Release|x86.Build.0 = Release|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|Win32.ActiveCfg = Debug|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x86.ActiveCfg = Debug|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Debug|x86.Build.0 = Debug|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Mixed Platforms.Build.0 = Release|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|Win32.ActiveCfg = Release|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x86.ActiveCfg = Release|x86
+ {090A081D-E8B5-4949-AA43-EE182B7101E3}.Release|x86.Build.0 = Release|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|Win32.ActiveCfg = Debug|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x86.ActiveCfg = Debug|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Debug|x86.Build.0 = Debug|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Mixed Platforms.Build.0 = Release|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|Win32.ActiveCfg = Release|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x86.ActiveCfg = Release|x86
+ {C43DEB69-8088-420B-B0CA-C699535E6D08}.Release|x86.Build.0 = Release|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|Win32.ActiveCfg = Debug|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x86.ActiveCfg = Debug|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Debug|x86.Build.0 = Debug|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Mixed Platforms.Build.0 = Release|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|Win32.ActiveCfg = Release|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x86.ActiveCfg = Release|x86
+ {EB36626D-36C2-41B3-B65E-762BAF27F137}.Release|x86.Build.0 = Release|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|Win32.ActiveCfg = Debug|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x86.ActiveCfg = Debug|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Debug|x86.Build.0 = Debug|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Mixed Platforms.Build.0 = Release|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|Win32.ActiveCfg = Release|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.ActiveCfg = Release|x86
+ {E31B349C-830C-4583-8BD9-30DA4398349F}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -188,6 +272,8 @@ Global
{DE58D329-10DC-4C8D-9EFA-230A57314089} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC}
{878FDDF8-A870-41D6-9E36-0A050EC5ACAB} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC}
{E99FEFEE-B866-4BBA-9AA3-79DDF1C92960} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC}
+ {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC}
+ {89CE04CB-21DE-4ABB-9236-50529DD8C022} = {34C477FB-B0CC-4AB9-A346-EA7B055469AC}
{7B71CE78-8E78-4632-ADBE-F4D5DFAE0068} = {DE58D329-10DC-4C8D-9EFA-230A57314089}
{52F880E7-D677-4C91-8516-D679CE0F46A8} = {DE58D329-10DC-4C8D-9EFA-230A57314089}
{AF2FBC78-266C-430C-BC29-9477AB596A36} = {39E9D1BF-3A0B-4D86-BF6B-F463E1A2245A}
@@ -195,5 +281,10 @@ Global
{AD9E53D7-DB10-4DA2-84D2-A81BE09B04E9} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960}
{68A43817-2358-4A31-8FDF-FE21722BFBCF} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960}
{12F1C14F-5C7D-4075-9BAE-C091394FF99A} = {E99FEFEE-B866-4BBA-9AA3-79DDF1C92960}
+ {0DE01712-C2D1-4CA4-B42C-5856456A8696} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB}
+ {090A081D-E8B5-4949-AA43-EE182B7101E3} = {9232212E-F3C6-4D18-8D25-0C31DD5FF3DB}
+ {C43DEB69-8088-420B-B0CA-C699535E6D08} = {89CE04CB-21DE-4ABB-9236-50529DD8C022}
+ {EB36626D-36C2-41B3-B65E-762BAF27F137} = {89CE04CB-21DE-4ABB-9236-50529DD8C022}
+ {E31B349C-830C-4583-8BD9-30DA4398349F} = {89CE04CB-21DE-4ABB-9236-50529DD8C022}
EndGlobalSection
EndGlobal
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp?rev=954983&r1=954982&r2=954983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.cpp Tue Jun 15 17:51:10 2010
@@ -24,6 +24,7 @@
#include <string>
#include <limits>
#include <iostream>
+#include <stdlib.h>
#include "qpid/messaging/Message.h"
#include "qpid/types/Variant.h"
@@ -100,6 +101,25 @@ namespace Messaging {
}
}
+
+ // Create from bytes
+ Message::Message(array<System::Byte> ^ bytes)
+ {
+ pin_ptr<unsigned char> pBytes = &bytes[0];
+ messagep = new ::qpid::messaging::Message((char *)pBytes, bytes->Length);
+ }
+
+ // Create from byte array slice
+ Message::Message(array<System::Byte> ^ bytes, int offset, int size)
+ {
+ if ((offset + size) > bytes->Length)
+ throw gcnew QpidException("Message::Message Create from byte array slice: buffer length exceeded");
+
+ pin_ptr<unsigned char> pBytes = &bytes[offset];
+ messagep = new ::qpid::messaging::Message((char *)pBytes, size);
+ }
+
+
// Create from received message
Message::Message(::qpid::messaging::Message * msgp) :
messagep(msgp)
@@ -278,7 +298,7 @@ namespace Messaging {
messagep->setRedelivered(redelivered);
}
-
+ // Properties
System::Collections::Generic::Dictionary<
System::String^, System::Object^> ^ Message::GetProperties()
{
@@ -297,7 +317,29 @@ namespace Messaging {
}
- void Message::SetContent(System::String ^ content)
+ void Message::SetProperty(System::String ^ name, System::Object ^ value)
+ {
+ ::qpid::types::Variant entryValue;
+ TypeTranslator::ManagedToNativeObject(value, entryValue);
+
+ messagep->getProperties()[QpidMarshal::ToNative(name)] = entryValue;
+ }
+
+
+ void Message::SetProperties(System::Collections::Generic::Dictionary<
+ System::String^, System::Object^> ^ properties)
+ {
+ for each (System::Collections::Generic::KeyValuePair
+ <System::String^, System::Object^> kvp in properties)
+ {
+ SetProperty(kvp.Key, kvp.Value);
+ }
+ }
+
+
+
+ // Content
+ void Message::SetContent(System::String ^ content)
{
messagep->setContent(QpidMarshal::ToNative(content));
}
@@ -342,8 +384,9 @@ namespace Messaging {
}
//
- // User wants content as bytes.
- // result array must be correct size already
+ // Return message content to raw byte array.
+ // On entry message size must not be zero and
+ // caller's byte array must be equal to message size.
//
void Message::GetRaw(array<System::Byte> ^ arr)
{
@@ -353,21 +396,98 @@ namespace Messaging {
throw gcnew QpidException("Message::GetRaw - message size is zero");
if (arr->Length != size)
- throw gcnew QpidException("Message::GetRaw - receive buffer is too small");
+ throw gcnew QpidException("Message::GetRaw - receive buffer is wrong size");
+
+ const char * pMsgSrc = messagep->getContentPtr();
+ pin_ptr<unsigned char> pArr = &arr[0];
+ memcpy(pArr, pMsgSrc, size);
+ }
+
- const char * ptr = messagep->getContentPtr();
+ System::UInt64 Message::GetContentSize()
+ {
+ return messagep->getContentSize();
+ }
- // TODO: System::Runtime::InteropServices::Marshal::Copy(ptr, arr, 0, size);
- for (UInt32 i = 0; i < size; i++)
+ System::String ^ Message::MapAsString(System::Collections::Generic::Dictionary<
+ System::String^, System::Object^> ^ dict)
+ {
+ System::String ^ leading = "";
+ System::Text::StringBuilder ^ sb = gcnew System::Text::StringBuilder("{");
+
+ for each (System::Collections::Generic::KeyValuePair
+ <System::String^, System::Object^> kvp in dict)
{
- arr[i] = ptr[i];
+ sb->Append(leading);
+ leading = ", ";
+
+ if (QpidTypeCheck::ObjectIsMap(kvp.Value))
+ {
+ sb->AppendFormat(
+ "{0}={1}",
+ kvp.Key,
+ MapAsString((System::Collections::Generic::Dictionary<System::String^, System::Object^> ^)kvp.Value));
+ }
+ else if (QpidTypeCheck::ObjectIsList(kvp.Value))
+ {
+ sb->AppendFormat(
+ "{0}={1}",
+ kvp.Key,
+ ListAsString((System::Collections::ObjectModel::Collection<
+ System::Object^> ^)kvp.Value));
+ }
+ else
+ sb->AppendFormat("{0}={1}", kvp.Key, kvp.Value);
}
- }
+ sb->Append("}");
+ System::String ^ result = gcnew System::String(sb->ToString());
+ return result;
+ }
- System::UInt64 Message::GetContentSize()
+ /// <summary>
+ /// A function to display a ampq/list message packaged as a List.
+ /// </summary>
+ /// <param name="list">The AMQP list</param>
+ System::String ^ Message::ListAsString(System::Collections::ObjectModel::Collection<System::Object^> ^ list)
{
- return messagep->getContentSize();
+ System::String ^ leading = "";
+ System::Text::StringBuilder ^ sb = gcnew System::Text::StringBuilder("[");
+
+ for each (System::Object ^ obj in list)
+ {
+ sb->Append(leading);
+ leading = ", ";
+
+ if (QpidTypeCheck::ObjectIsMap(obj))
+ {
+ sb->Append(MapAsString((System::Collections::Generic::Dictionary<
+ System::String^, System::Object^> ^)obj));
+ }
+ else if (QpidTypeCheck::ObjectIsList(obj))
+ {
+ sb->Append(ListAsString((System::Collections::ObjectModel::Collection<
+ System::Object^> ^)obj));
+ }
+ else
+ sb->Append(obj->ToString());
+ }
+ sb->Append("]");
+
+ System::String ^ result = gcnew System::String(sb->ToString());
+ return result;
}
+
+ System::String ^ Message::AsString(System::Object ^ obj)
+ {
+ if (QpidTypeCheck::ObjectIsMap(obj))
+ return MapAsString((System::Collections::Generic::Dictionary<
+ System::String^, System::Object^> ^)obj);
+ else if (QpidTypeCheck::ObjectIsList(obj))
+ return ListAsString((System::Collections::ObjectModel::Collection<
+ System::Object^> ^)obj);
+ else
+ return obj->ToString();
+ }
}}}}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.h?rev=954983&r1=954982&r2=954983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.h (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Message.h Tue Jun 15 17:51:10 2010
@@ -58,8 +58,11 @@ namespace Messaging {
// Create from object
Message(System::Object ^ theValue);
- // TODO: Create from bytes
- // Message(System::Byte [] ^ bytes);
+ // Create from byte array
+ Message(array<System::Byte> ^ bytes);
+
+ // Create from byte array slice
+ Message(array<System::Byte> ^ bytes, int offset, int size);
// Create from received message
Message(::qpid::messaging::Message * msgp);
@@ -108,6 +111,11 @@ namespace Messaging {
System::Collections::Generic::Dictionary<
System::String^, System::Object^> ^ GetProperties();
+ void SetProperty(System::String ^ name, System::Object ^ value);
+
+ void SetProperties(System::Collections::Generic::Dictionary<
+ System::String^, System::Object^> ^ properties);
+
void SetContent(System::String ^ content);
//TODO:: void setContent(Bytes{} bytes, offset, length);
@@ -129,6 +137,16 @@ namespace Messaging {
System::UInt64 GetContentSize();
+ // A message has been returned to managed code through GetContent().
+ // Display the content of that System::Object as a string.
+ System::String ^ AsString(System::Object ^ obj);
+
+ System::String ^ MapAsString(System::Collections::Generic::Dictionary<
+ System::String^, System::Object^> ^ dict);
+
+ System::String ^ ListAsString(System::Collections::ObjectModel::Collection<
+ System::Object^> ^ list);
+
//TODO: EncodingException
// Note: encode/decode functions are in TypeTranslator
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=954983&r1=954982&r2=954983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.cpp Tue Jun 15 17:51:10 2010
@@ -27,6 +27,7 @@
#include "qpid/messaging/exceptions.h"
#include "QpidMarshal.h"
+#include "Address.h"
#include "Session.h"
#include "Connection.h"
#include "Duration.h"
@@ -207,6 +208,54 @@ namespace Messaging {
Sender ^ Session::CreateSender (System::String ^ address)
{
System::Exception ^ newException = nullptr;
+ ::qpid::messaging::Sender * senderp = NULL;
+ Sender ^ newSender = nullptr;
+
+ try
+ {
+ // allocate a native sender
+ ::qpid::messaging::Sender * senderp = new ::qpid::messaging::Sender ;
+
+ // create the sender
+ *senderp = sessionp->::qpid::messaging::Session::createSender(QpidMarshal::ToNative(address));
+
+ // create a managed sender
+ newSender = gcnew Sender(senderp, this);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
+ String ^ errmsg = gcnew String(error.what());
+ newException = gcnew QpidException(errmsg);
+ }
+ finally
+ {
+ if (newException != nullptr)
+ {
+ if (newSender != nullptr)
+ {
+ delete newSender;
+ }
+ else
+ {
+ if (senderp != NULL)
+ {
+ delete senderp;
+ }
+ }
+ }
+ }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
+
+ return newSender;
+ }
+
+
+ Sender ^ Session::CreateSender (Address ^ address)
+ {
+ System::Exception ^ newException = nullptr;
::qpid::messaging::Sender * senderp = NULL;
Sender ^ newSender = nullptr;
@@ -216,7 +265,7 @@ namespace Messaging {
::qpid::messaging::Sender * senderp = new ::qpid::messaging::Sender ;
// create the sender
- *senderp = sessionp->::qpid::messaging::Session::createSender(QpidMarshal::ToNative(address));
+ *senderp = sessionp->::qpid::messaging::Session::createSender(*(address->NativeAddress));
// create a managed sender
newSender = gcnew Sender(senderp, this);
@@ -251,7 +300,8 @@ namespace Messaging {
return newSender;
}
- Receiver ^ Session::CreateReceiver(System::String ^ address)
+
+ Receiver ^ Session::CreateReceiver(System::String ^ address)
{
System::Exception ^ newException = nullptr;
::qpid::messaging::Receiver * receiverp = NULL;
@@ -299,6 +349,54 @@ namespace Messaging {
}
+ Receiver ^ Session::CreateReceiver(Address ^ address)
+ {
+ System::Exception ^ newException = nullptr;
+ ::qpid::messaging::Receiver * receiverp = NULL;
+ Receiver ^ newReceiver = nullptr;
+
+ try
+ {
+ // allocate a native receiver
+ receiverp = new ::qpid::messaging::Receiver;
+
+ // create the receiver
+ *receiverp = sessionp->createReceiver(*(address->NativeAddress));
+
+ // create a managed receiver
+ newReceiver = gcnew Receiver(receiverp, this);
+ }
+ catch (const ::qpid::types::Exception & error)
+ {
+ String ^ errmsg = gcnew String(error.what());
+ newException = gcnew QpidException(errmsg);
+ }
+ finally
+ {
+ if (newException != nullptr)
+ {
+ if (newReceiver != nullptr)
+ {
+ delete newReceiver;
+ }
+ else
+ {
+ if (receiverp != NULL)
+ {
+ delete receiverp;
+ }
+ }
+ }
+ }
+ if (newException != nullptr)
+ {
+ throw newException;
+ }
+
+ return newReceiver;
+ }
+
+
Receiver ^ Session::CreateReceiver()
{
System::Exception ^ newException = nullptr;
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=954983&r1=954982&r2=954983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.h (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/Session.h Tue Jun 15 17:51:10 2010
@@ -45,6 +45,7 @@ namespace Messaging {
/// Session is a managed wrapper for a ::qpid::messaging::Session
/// </summary>
+ ref class Address;
ref class Connection;
ref class Duration;
ref class Receiver;
@@ -99,8 +100,11 @@ namespace Messaging {
Receiver ^ NextReceiver(Duration ^ timeout);
- Sender ^ CreateSender (System::String ^ address);
+ Sender ^ CreateSender(System::String ^ address);
+ Sender ^ CreateSender(Address ^ address);
+
Receiver ^ CreateReceiver(System::String ^ address);
+ Receiver ^ CreateReceiver(Address ^ address);
Receiver ^ CreateReceiver();
Sender ^ GetSender(System::String ^ name);
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj?rev=954983&r1=954982&r2=954983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/src/sessionreceiver/org.apache.qpid.messaging.sessionreceiver.csproj Tue Jun 15 17:51:10 2010
@@ -3,7 +3,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
+ <ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{B0A51CEC-30A2-4C2E-90BE-AE95107EAA05}</ProjectGuid>
<OutputType>Library</OutputType>
@@ -67,7 +67,7 @@
<ItemGroup>
<ProjectReference Include="..\org.apache.qpid.messaging.vcproj">
<Project>{AA5A3B83-5F98-406D-A01C-5A921467A57D}</Project>
- <Name>org.apache.qpid.messaging</Name>
+ <Name>Org.Apache.Qpid.Messaging</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs?rev=954983&r1=954982&r2=954983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs Tue Jun 15 17:51:10 2010
@@ -83,6 +83,37 @@ namespace Org.Apache.Qpid.Messaging
Console.WriteLine("Got raw array size {0}", m2Size);
for (UInt64 i = 0; i < m2Size; i++)
Console.Write("{0} ", myRaw[i].ToString());
+ Console.WriteLine();
+
+ //
+ // Raw message creation
+ //
+ byte[] rawData = new byte[10];
+ for (byte i=0; i<10; i++)
+ rawData[i] = i;
+ Message m3 = new Message(rawData);
+
+ byte[] rawDataReadback = new byte[m3.GetContentSize()];
+ m3.GetRaw(rawDataReadback);
+ for (UInt64 i = 0; i < m3.GetContentSize(); i++)
+ Console.Write("{0} ", rawDataReadback[i].ToString());
+ Console.WriteLine();
+
+ //
+ // Raw message from array slice
+ //
+ byte[] rawData4 = new byte[256];
+ for (int i = 0; i <= 255; i++)
+ rawData4[i] = (byte)i;
+
+ Message m4 = new Message(rawData4, 246, 10);
+
+ byte[] rawDataReadback4 = new byte[m4.GetContentSize()];
+ m4.GetRaw(rawDataReadback4);
+ for (UInt64 i = 0; i < m4.GetContentSize(); i++)
+ Console.Write("{0} ", rawDataReadback4[i].ToString());
+ Console.WriteLine();
+
}
}
}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj?rev=954983&r1=954982&r2=954983&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj Tue Jun 15 17:51:10 2010
@@ -3,7 +3,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>9.0.30729</ProductVersion>
+ <ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{AF2FBC78-266C-430C-BC29-9477AB596A36}</ProjectGuid>
<OutputType>Exe</OutputType>
@@ -67,7 +67,7 @@
<ItemGroup>
<ProjectReference Include="..\..\src\org.apache.qpid.messaging.vcproj">
<Project>{AA5A3B83-5F98-406D-A01C-5A921467A57D}</Project>
- <Name>org.apache.qpid.messaging</Name>
+ <Name>Org.Apache.Qpid.Messaging</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org