protected virtual void OnNGraphChanged(TItem item, GraphEventType graphEventType) { if (_nGraphChanged != null) { _nGraphChanged(this, new GraphChangedEventArgs <TItem, TEdge>(this, GraphCursor.Create(this, item), graphEventType)); } }
public GraphEventArgs nextLevelArgs(System.Object lastSender, GraphEventType graphEvent, string appendString) { GraphEventArgs eventArgs = new GraphEventArgs(origin, lastSender, graphEvent, this.timeToLive - 1, this.message + "\n" + timeToLive + ": " + appendString); //Debug.Log(eventArgs.ToString()); return(eventArgs); }
public GraphEventArgs(System.Object origin, System.Object lastSender, GraphEventType graphEvent, int timeToLive, string message) { this.origin = origin; this.lastSender = lastSender; this.GraphEvent = graphEvent; this.timeToLive = timeToLive; this.message = message; }
public virtual void VisitItems( GraphCursor <TItem, TEdge> graphCursor, Action <TItem> visit, GraphEventType eventType) { if (Visitor != null) { Visitor(graphCursor, visit, eventType); } }
public static void DependencyVisitor <TSinkItem, TSinkEdge, TSourceItem, TSourceEdge> (GraphCursor <TSinkItem, TSinkEdge> sink, Action <TSinkItem> visit, GraphEventType eventType) where TSinkEdge : IEdge <TSinkItem>, TSinkItem where TSourceEdge : IEdge <TSourceItem>, TSourceItem { var graphPair = sink.Graph.Source <TSinkItem, TSinkEdge, TSourceItem, TSourceEdge> (); if (graphPair == null) { return; } var sourceGraph = graphPair.Source; var sourceItem = sink.Graph.SourceItemOf <TSinkItem, TSinkEdge, TSourceItem, TSourceEdge> (sink.Cursor); if (sourceGraph == null || sourceItem == null) { return; } Registry.Pooled <GraphDepencencies <TSourceItem, TSourceEdge> > () .VisitItems( GraphCursor.Create(sourceGraph, sourceItem), source => { if (graphPair.Source2Sink.ContainsKey(source)) { visit(graphPair.Get(source)); } }, eventType); }
public static IEnumerable <TItem> DependsOn <TItem, TEdge> (this IGraph <TItem, TEdge> graph, TItem source, GraphEventType eventType) where TEdge : IEdge <TItem> { var dep = graph as IGraphDependencies <TItem, TEdge>; if (dep != null) { return(dep.DependsOn(GraphCursor.Create(graph, source), eventType)); } return(new TItem[0]); }
public virtual IEnumerable <IThing> DependsOn(GraphCursor <IThing, ILink> source, GraphEventType eventType) { if (HasPages(source)) { var doc = source.Cursor; var graph = source.Graph.Unwrap(); foreach (var link in PageLinks(graph as IThingGraph, doc).ToArray()) { var page = link.Leaf; var singleEdge = graph.HasSingleEdge(page); yield return(link); if (singleEdge || eventType != GraphEventType.Remove) { yield return(page); } } } }
public GraphEventArgs nextLevelArgs(System.Object lastSender, GraphEventType graphEvent) { return(new GraphEventArgs(origin, lastSender, graphEvent, this.timeToLive - 1, this.message)); }
public GraphChangeArgs(IGraph <TItem, TEdge> graph, TItem item, GraphEventType eventType) { this.Graph = graph; this.Item = item; this.EventType = eventType; }
public static IEnumerable <IThing> DependsOn(GraphCursor <IThing, ILink> source, GraphEventType eventType) { var graph = source.Graph.Unwrap(); return(graph.Edges(source.Cursor) .Where(l => l != null && l.Marker != null && Deps.Contains(l.Marker.Id)) .Select(l => l.Leaf) .ToArray()); }
public static void OnGraphChange <TItem, TEdge> (this IGraph <TItem, TEdge> graph, TItem item, GraphEventType eventType) where TEdge : IEdge <TItem> { graph.OnGraphChange(graph, new GraphChangeArgs <TItem, TEdge> (graph, item, eventType)); }