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; } } }