From b0b7df3c8ecb0ab200d329575eb079f63b95fcf8 Mon Sep 17 00:00:00 2001 From: Jim Radford Date: Sat, 18 Apr 2009 06:20:20 +0000 Subject: [PATCH] LIBOMV-477 Adds SendPostcardMessage to Message system git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2629 52acb1d6-8a22-11de-b505-999d5b087335 --- OpenMetaverse.Tests/MessageTests.cs | 24 ++++++++++++++ OpenMetaverse/Messages/LindenMessages.cs | 32 +++++++++++++++++++ OpenMetaverse/Messages/MessageEventDecoder.cs | 1 + 3 files changed, 57 insertions(+) diff --git a/OpenMetaverse.Tests/MessageTests.cs b/OpenMetaverse.Tests/MessageTests.cs index e46db319..ae41a662 100644 --- a/OpenMetaverse.Tests/MessageTests.cs +++ b/OpenMetaverse.Tests/MessageTests.cs @@ -866,6 +866,30 @@ namespace OpenMetaverse.Tests Assert.AreEqual(s.ItemID, t.ItemID); Assert.AreEqual(s.Target, t.Target); } + + [Test] + public void SendPostcardMessage() + { + SendPostcardMessage s = new SendPostcardMessage(); + s.FromEmail = "contact@openmetaverse.org"; + s.FromName = "Jim Radford"; + s.GlobalPosition = Vector3.One; + s.Message = "Hello, How are you today?"; + s.Subject = "Postcard from the edge"; + s.ToEmail = "test1@example.com"; + + OSDMap map = s.Serialize(); + + SendPostcardMessage t = new SendPostcardMessage(); + t.Deserialize(map); + + Assert.AreEqual(s.FromEmail, t.FromEmail); + Assert.AreEqual(s.FromName, t.FromName); + Assert.AreEqual(s.GlobalPosition, t.GlobalPosition); + Assert.AreEqual(s.Message, t.Message); + Assert.AreEqual(s.Subject, t.Subject); + Assert.AreEqual(s.ToEmail, t.ToEmail); + } } } diff --git a/OpenMetaverse/Messages/LindenMessages.cs b/OpenMetaverse/Messages/LindenMessages.cs index 6399b304..4a507240 100644 --- a/OpenMetaverse/Messages/LindenMessages.cs +++ b/OpenMetaverse/Messages/LindenMessages.cs @@ -1182,6 +1182,38 @@ namespace OpenMetaverse.Messages.Linden } + public class SendPostcardMessage : IMessage + { + public string FromEmail; + public string Message; + public string FromName; + public Vector3 GlobalPosition; + public string Subject; + public string ToEmail; + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(6); + map["from"] = OSD.FromString(FromEmail); + map["msg"] = OSD.FromString(Message); + map["name"] = OSD.FromString(FromName); + map["pos-global"] = OSD.FromVector3(GlobalPosition); + map["subject"] = OSD.FromString(Subject); + map["to"] = OSD.FromString(ToEmail); + return map; + } + + public void Deserialize(OSDMap map) + { + FromEmail = map["from"].AsString(); + Message = map["msg"].AsString(); + FromName = map["name"].AsString(); + GlobalPosition = map["pos-global"].AsVector3(); + Subject = map["subject"].AsString(); + ToEmail = map["to"].AsString(); + } + } + #endregion #region Grid/Maps diff --git a/OpenMetaverse/Messages/MessageEventDecoder.cs b/OpenMetaverse/Messages/MessageEventDecoder.cs index 97bb9ff3..1887bfa8 100644 --- a/OpenMetaverse/Messages/MessageEventDecoder.cs +++ b/OpenMetaverse/Messages/MessageEventDecoder.cs @@ -70,6 +70,7 @@ namespace OpenMetaverse case "RemoteParcelRequest": message = new RemoteParcelRequestMessage(); break; case "UpdateScriptTask": message = new UpdateScriptTaskMessage(); break; case "UpdateScriptAgent": message = new UpdateScriptAgentMessage(); break; + case "SendPostcard": message = new SendPostcardMessage(); break; // Capabilities TODO: // DispatchRegionInfo