AvatarsConquest/Scripts/Engines/Reports/Objects/Snapshots/SnapshotHistory.cs

65 lines
No EOL
1.5 KiB
C#

using System;
using System.IO;
using System.Xml;
namespace Server.Engines.Reports
{
public class SnapshotHistory : PersistableObject
{
#region Type Identification
public static readonly PersistableType ThisTypeID = new PersistableType( "sh", new ConstructCallback( Construct ) );
private static PersistableObject Construct()
{
return new SnapshotHistory();
}
public override PersistableType TypeID{ get{ return ThisTypeID; } }
#endregion
private SnapshotCollection m_Snapshots;
public SnapshotCollection Snapshots{ get{ return m_Snapshots; } set{ m_Snapshots = value; } }
public SnapshotHistory()
{
m_Snapshots = new SnapshotCollection();
}
public void Save()
{
string path = Path.Combine( Core.BaseDirectory, "reportHistory.xml" );
PersistanceWriter pw = new XmlPersistanceWriter( path, "Stats" );
pw.WriteDocument( this );
pw.Close();
}
public void Load()
{
string path = Path.Combine( Core.BaseDirectory, "reportHistory.xml" );
if ( !File.Exists( path ) )
return;
PersistanceReader pr = new XmlPersistanceReader( path, "Stats" );
pr.ReadDocument( this );
pr.Close();
}
public override void SerializeChildren( PersistanceWriter op )
{
for ( int i = 0; i < m_Snapshots.Count; ++i )
m_Snapshots[i].Serialize( op );
}
public override void DeserializeChildren( PersistanceReader ip )
{
while ( ip.HasChild )
m_Snapshots.Add( ip.GetChild() as Snapshot );
}
}
}