ModernUO/Scripts/Engines/Reports/Persistance/PersistableObject.cs

44 lines
No EOL
930 B
C#

namespace Server.Engines.Reports
{
public abstract class PersistableObject
{
public abstract PersistableType TypeID{ get; }
public virtual void SerializeAttributes(PersistanceWriter op)
{
}
public virtual void SerializeChildren(PersistanceWriter op)
{
}
public void Serialize(PersistanceWriter op)
{
op.BeginObject(TypeID);
SerializeAttributes(op);
op.BeginChildren();
SerializeChildren(op);
op.FinishChildren();
op.FinishObject();
}
public virtual void DeserializeAttributes(PersistanceReader ip)
{
}
public virtual void DeserializeChildren(PersistanceReader ip)
{
}
public void Deserialize(PersistanceReader ip)
{
DeserializeAttributes(ip);
if (ip.BeginChildren())
{
DeserializeChildren(ip);
ip.FinishChildren();
}
}
}
}