* Initial commit of Periscope, an experimental Simian plugin that uses a libomv bot to proxy a foreign simulator

* Small cleanups and bugfixes in Simian

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2382 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
John Hurliman
2008-12-16 08:43:27 +00:00
parent 94ea54bed6
commit ee6211550e
8 changed files with 121 additions and 41 deletions

View File

@@ -62,28 +62,31 @@ namespace Simian.Extensions
public void Stop()
{
OSDMap dictionary = new OSDMap(server.PersistentExtensions.Count);
for (int i = 0; i < server.PersistentExtensions.Count; i++)
if (server != null)
{
IPersistable persistable = server.PersistentExtensions[i];
OSDMap dictionary = new OSDMap(server.PersistentExtensions.Count);
Logger.DebugLog("Storing persistant data for " + persistable.ToString());
dictionary.Add(persistable.ToString(), persistable.Serialize());
}
for (int i = 0; i < server.PersistentExtensions.Count; i++)
{
IPersistable persistable = server.PersistentExtensions[i];
try
{
XmlTextWriter writer = new XmlTextWriter(server.DataDir + "simiandata.xml", System.Text.Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.WriteStartElement("llsd");
OSDParser.SerializeLLSDXmlElement(writer, dictionary);
writer.WriteEndElement();
writer.Close();
}
catch (Exception ex)
{
Logger.Log("Failed to save persistance data: " + ex.Message, Helpers.LogLevel.Error);
Logger.DebugLog("Storing persistant data for " + persistable.ToString());
dictionary.Add(persistable.ToString(), persistable.Serialize());
}
try
{
XmlTextWriter writer = new XmlTextWriter(server.DataDir + "simiandata.xml", System.Text.Encoding.UTF8);
writer.Formatting = Formatting.Indented;
writer.WriteStartElement("llsd");
OSDParser.SerializeLLSDXmlElement(writer, dictionary);
writer.WriteEndElement();
writer.Close();
}
catch (Exception ex)
{
Logger.Log("Failed to save persistance data: " + ex.Message, Helpers.LogLevel.Error);
}
}
}
}