private void AssociateMetadataAndLink(FuzzyMetadata metadata, TypeLink link) { link.RegDebuggableParent(metadata); var links = new List<TypeLink>(metadata.Links); links.Add(link); metadata.Links = links.AsReadOnly(); metadata.SomeMoreStuffInferred += (o, e) => Engine.ScheduleSync(this, (FuzzyMetadata)o); metadata.ContradictionReported += (o, e) => ReportContradiction(String.Format( "'{0}' reports: '{1}'", o, e.WhatHappened)); }
public void UnregisterLink(TypeLink link) { _links.Remove(link); link.DisposeDebuggableObject(); }
public Sync(TypeLink link, FuzzyMetadata sender) { Link = link; Sender = sender; }
public void RegisterLink(TypeLink link) { link.ContradictionReported += (o, e) => ProcessContradiction(o, e.WhatHappened); _links.Add(link); }
public void ScheduleSync(TypeLink link, FuzzyMetadata sender) { if (_syncsAllowed) { _queue.Enqueue(new Sync(link, sender)); } }