using Vellum;
namespace Ariadne.Vellum
{
///
/// Saves a trigger as the waits that are subscribed to it.
///
public class TriggerConverter : SaveConverter
{
public override SaveNode Write(Trigger value, SaveSession session)
{
return SavedSubscriptions.Write(value, session);
}
public override Trigger Allocate(SaveNode node, SaveSession session)
{
return new Trigger();
}
public override void Fill(Trigger blank, SaveNode node, SaveSession session)
{
SavedSubscriptions.Fill(blank, node, session);
}
public override void Complete(Trigger blank, SaveNode node, SaveSession session)
{
SavedSubscriptions.Check(blank);
}
public override bool TryListChildren(SaveNode node, ChildList children)
{
return SavedSubscriptions.ListChildren(node, children);
}
public override Trigger Read(SaveNode node, SaveSession session)
{
Trigger returnMe = Allocate(node, session);
session.Publish(node, returnMe);
Fill(returnMe, node, session);
return returnMe;
}
}
}