* refactor: break some of xml2 serialization out of sog
parent
c82a916886
commit
d10b5e29bc
|
@ -362,10 +362,12 @@ namespace OpenSim.Framework.Communications.Clients
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DoCreateObjectCall(RegionInfo region, ISceneObject sog, bool allowScriptCrossing)
|
public bool DoCreateObjectCall(RegionInfo region, ISceneObject sog, string sogXml2, bool allowScriptCrossing)
|
||||||
{
|
{
|
||||||
ulong regionHandle = GetRegionHandle(region.RegionHandle);
|
ulong regionHandle = GetRegionHandle(region.RegionHandle);
|
||||||
string uri = "http://" + region.ExternalEndPoint.Address + ":" + region.HttpPort + "/object/" + sog.UUID + "/" + regionHandle.ToString() + "/";
|
string uri
|
||||||
|
= "http://" + region.ExternalEndPoint.Address + ":" + region.HttpPort
|
||||||
|
+ "/object/" + sog.UUID + "/" + regionHandle.ToString() + "/";
|
||||||
//m_log.Debug(" >>> DoCreateChildAgentCall <<< " + uri);
|
//m_log.Debug(" >>> DoCreateChildAgentCall <<< " + uri);
|
||||||
|
|
||||||
WebRequest ObjectCreateRequest = WebRequest.Create(uri);
|
WebRequest ObjectCreateRequest = WebRequest.Create(uri);
|
||||||
|
@ -374,7 +376,7 @@ namespace OpenSim.Framework.Communications.Clients
|
||||||
ObjectCreateRequest.Timeout = 10000;
|
ObjectCreateRequest.Timeout = 10000;
|
||||||
|
|
||||||
OSDMap args = new OSDMap(2);
|
OSDMap args = new OSDMap(2);
|
||||||
args["sog"] = OSD.FromString(sog.ToXmlString2());
|
args["sog"] = OSD.FromString(sogXml2);
|
||||||
args["extra"] = OSD.FromString(sog.ExtraToXmlString());
|
args["extra"] = OSD.FromString(sog.ExtraToXmlString());
|
||||||
if (allowScriptCrossing)
|
if (allowScriptCrossing)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
using System.Xml;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
|
|
||||||
namespace OpenSim.Framework
|
namespace OpenSim.Framework
|
||||||
|
@ -33,7 +34,7 @@ namespace OpenSim.Framework
|
||||||
{
|
{
|
||||||
UUID UUID { get; }
|
UUID UUID { get; }
|
||||||
ISceneObject CloneForNewScene();
|
ISceneObject CloneForNewScene();
|
||||||
string ToXmlString2();
|
void ToXml2(XmlTextWriter writer);
|
||||||
string ExtraToXmlString();
|
string ExtraToXmlString();
|
||||||
void ExtraFromXmlString(string xmlstr);
|
void ExtraFromXmlString(string xmlstr);
|
||||||
string GetStateSnapshot();
|
string GetStateSnapshot();
|
||||||
|
|
|
@ -44,6 +44,7 @@ using OpenSim.Framework.Communications.Osp;
|
||||||
using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver;
|
using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver;
|
||||||
using OpenSim.Region.CoreModules.World.Serialiser;
|
using OpenSim.Region.CoreModules.World.Serialiser;
|
||||||
using OpenSim.Region.Framework.Scenes;
|
using OpenSim.Region.Framework.Scenes;
|
||||||
|
using OpenSim.Region.Framework.Scenes.Serialization;
|
||||||
using OpenSim.Tests.Common;
|
using OpenSim.Tests.Common;
|
||||||
using OpenSim.Tests.Common.Mock;
|
using OpenSim.Tests.Common.Mock;
|
||||||
using OpenSim.Tests.Common.Setup;
|
using OpenSim.Tests.Common.Setup;
|
||||||
|
@ -108,7 +109,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
|
||||||
UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060");
|
UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060");
|
||||||
AssetBase asset1 = new AssetBase();
|
AssetBase asset1 = new AssetBase();
|
||||||
asset1.FullID = asset1Id;
|
asset1.FullID = asset1Id;
|
||||||
asset1.Data = Encoding.ASCII.GetBytes(object1.ToXmlString2());
|
asset1.Data = Encoding.ASCII.GetBytes(SceneObjectSerializer.ToXml2Format(object1));
|
||||||
cm.AssetCache.AddAsset(asset1);
|
cm.AssetCache.AddAsset(asset1);
|
||||||
|
|
||||||
// Create item
|
// Create item
|
||||||
|
|
|
@ -276,7 +276,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectors.Interregion
|
||||||
RegionInfo regInfo = m_commsManager.GridService.RequestNeighbourInfo(regionHandle);
|
RegionInfo regInfo = m_commsManager.GridService.RequestNeighbourInfo(regionHandle);
|
||||||
if (regInfo != null)
|
if (regInfo != null)
|
||||||
{
|
{
|
||||||
return m_regionClient.DoCreateObjectCall(regInfo, sog, m_aScene.m_allowScriptCrossings);
|
return m_regionClient.DoCreateObjectCall(
|
||||||
|
regInfo, sog, SceneObjectSerializer.ToXml2Format(sog), m_aScene.m_allowScriptCrossings);
|
||||||
}
|
}
|
||||||
//else
|
//else
|
||||||
// m_log.Warn("[REST COMMS]: Region not found " + regionHandle);
|
// m_log.Warn("[REST COMMS]: Region not found " + regionHandle);
|
||||||
|
|
|
@ -39,6 +39,7 @@ using OpenSim.Framework.Serialization;
|
||||||
using OpenSim.Region.CoreModules.World.Serialiser;
|
using OpenSim.Region.CoreModules.World.Serialiser;
|
||||||
using OpenSim.Region.CoreModules.World.Terrain;
|
using OpenSim.Region.CoreModules.World.Terrain;
|
||||||
using OpenSim.Region.Framework.Scenes;
|
using OpenSim.Region.Framework.Scenes;
|
||||||
|
using OpenSim.Region.Framework.Scenes.Serialization;
|
||||||
using OpenSim.Tests.Common;
|
using OpenSim.Tests.Common;
|
||||||
using OpenSim.Tests.Common.Setup;
|
using OpenSim.Tests.Common.Setup;
|
||||||
|
|
||||||
|
@ -242,7 +243,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
|
||||||
part1Name,
|
part1Name,
|
||||||
Math.Round(groupPosition.X), Math.Round(groupPosition.Y), Math.Round(groupPosition.Z),
|
Math.Round(groupPosition.X), Math.Round(groupPosition.Y), Math.Round(groupPosition.Z),
|
||||||
part1.UUID);
|
part1.UUID);
|
||||||
tar.WriteFile(ArchiveConstants.OBJECTS_PATH + object1FileName, object1.ToXmlString2());
|
tar.WriteFile(ArchiveConstants.OBJECTS_PATH + object1FileName, SceneObjectSerializer.ToXml2Format(object1));
|
||||||
|
|
||||||
tar.Close();
|
tar.Close();
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ using System.IO.Compression;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using OpenSim.Region.Framework.Scenes;
|
using OpenSim.Region.Framework.Scenes;
|
||||||
|
using OpenSim.Region.Framework.Scenes.Serialization;
|
||||||
|
|
||||||
namespace OpenSim.Region.CoreModules.World.Serialiser
|
namespace OpenSim.Region.CoreModules.World.Serialiser
|
||||||
{
|
{
|
||||||
|
@ -86,7 +87,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser
|
||||||
{
|
{
|
||||||
if (ent is SceneObjectGroup)
|
if (ent is SceneObjectGroup)
|
||||||
{
|
{
|
||||||
EntityXml.Add(((SceneObjectGroup) ent).ToXmlString2());
|
EntityXml.Add(SceneObjectSerializer.ToXml2Format((SceneObjectGroup)ent));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EntityXml.Sort();
|
EntityXml.Sort();
|
||||||
|
|
|
@ -583,19 +583,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public string ToXmlString2()
|
|
||||||
{
|
|
||||||
using (StringWriter sw = new StringWriter())
|
|
||||||
{
|
|
||||||
using (XmlTextWriter writer = new XmlTextWriter(sw))
|
|
||||||
{
|
|
||||||
ToXml2(writer);
|
|
||||||
}
|
|
||||||
|
|
||||||
return sw.ToString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ToXml2(XmlTextWriter writer)
|
public void ToXml2(XmlTextWriter writer)
|
||||||
{
|
{
|
||||||
//m_log.DebugFormat("[SOG]: Starting serialization of SOG {0} to XML2", Name);
|
//m_log.DebugFormat("[SOG]: Starting serialization of SOG {0} to XML2", Name);
|
||||||
|
|
|
@ -101,7 +101,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
public static string SaveGroupToXml2(SceneObjectGroup grp)
|
public static string SaveGroupToXml2(SceneObjectGroup grp)
|
||||||
{
|
{
|
||||||
return grp.ToXmlString2();
|
return SceneObjectSerializer.ToXml2Format(grp);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static SceneObjectGroup DeserializeGroupFromXml2(string xmlString)
|
public static SceneObjectGroup DeserializeGroupFromXml2(string xmlString)
|
||||||
|
@ -278,7 +278,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
stream.WriteLine(g.ToXmlString2());
|
stream.WriteLine(SceneObjectSerializer.ToXml2Format(g));
|
||||||
primCount++;
|
primCount++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ using System.Reflection;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using log4net;
|
using log4net;
|
||||||
using OpenMetaverse;
|
using OpenMetaverse;
|
||||||
|
using OpenSim.Framework;
|
||||||
using OpenSim.Region.Framework.Scenes;
|
using OpenSim.Region.Framework.Scenes;
|
||||||
|
|
||||||
namespace OpenSim.Region.Framework.Scenes.Serialization
|
namespace OpenSim.Region.Framework.Scenes.Serialization
|
||||||
|
@ -246,6 +247,24 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
||||||
writer.WriteEndElement(); // SceneObjectGroup
|
writer.WriteEndElement(); // SceneObjectGroup
|
||||||
|
|
||||||
//m_log.DebugFormat("[SERIALIZER]: Finished serialization of SOG {0}, {1}ms", Name, System.Environment.TickCount - time);
|
//m_log.DebugFormat("[SERIALIZER]: Finished serialization of SOG {0}, {1}ms", Name, System.Environment.TickCount - time);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Serialize a scene object to the 'xml2' format.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sceneObject"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string ToXml2Format(ISceneObject sceneObject)
|
||||||
|
{
|
||||||
|
using (StringWriter sw = new StringWriter())
|
||||||
|
{
|
||||||
|
using (XmlTextWriter writer = new XmlTextWriter(sw))
|
||||||
|
{
|
||||||
|
sceneObject.ToXml2(writer);
|
||||||
|
}
|
||||||
|
|
||||||
|
return sw.ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue