public IDisposable Attach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm) { algorithm.DiscoverVertex += new VertexAction <TVertex>(algorithm_DiscoverVertex); return(new DisposableAction( () => algorithm.DiscoverVertex -= new VertexAction <TVertex>(algorithm_DiscoverVertex) )); }
public IDisposable Attach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm) { Contract.Requires(algorithm != null); algorithm.DiscoverVertex += algorithm_DiscoverVertex; return(new DisposableAction(() => algorithm.DiscoverVertex -= algorithm_DiscoverVertex)); }
/// <inheritdoc /> public IDisposable Attach(IVertexTimeStamperAlgorithm <TVertex> algorithm) { if (algorithm is null) { throw new ArgumentNullException(nameof(algorithm)); } algorithm.DiscoverVertex += OnVertexDiscovered; return(Finally(() => algorithm.DiscoverVertex -= OnVertexDiscovered)); }
public IDisposable Attach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm) { algorithm.DiscoverVertex += new VertexAction <TVertex>(DiscoverVertex); if (this._finishTimes != null) { algorithm.FinishVertex += new VertexAction <TVertex>(FinishVertex); } return(new DisposableAction( () => { algorithm.DiscoverVertex -= new VertexAction <TVertex>(DiscoverVertex); if (this._finishTimes != null) { algorithm.FinishVertex -= new VertexAction <TVertex>(FinishVertex); } })); }
public IDisposable Attach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm) { Contract.Requires(algorithm != null); algorithm.DiscoverVertex += DiscoverVertex; if (this._finishTimes != null) { algorithm.FinishVertex += FinishVertex; } return(new DisposableAction( () => { algorithm.DiscoverVertex -= DiscoverVertex; if (this._finishTimes != null) { algorithm.FinishVertex -= FinishVertex; } })); }
public void Detach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm) { algorithm.DiscoverVertex -= new VertexEventHandler <TVertex>(DiscoverVertex); algorithm.FinishVertex -= new VertexEventHandler <TVertex>(FinishVertex); }
public void Attach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm) { algorithm.DiscoverVertex += new VertexEventHandler <TVertex>(algorithm_DiscoverVertex); }