Пример #1
0
 public IDisposable Attach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm)
 {
     algorithm.DiscoverVertex += new VertexAction <TVertex>(algorithm_DiscoverVertex);
     return(new DisposableAction(
                () => algorithm.DiscoverVertex -= new VertexAction <TVertex>(algorithm_DiscoverVertex)
                ));
 }
Пример #2
0
        public IDisposable Attach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm)
        {
            Contract.Requires(algorithm != null);

            algorithm.DiscoverVertex += algorithm_DiscoverVertex;
            return(new DisposableAction(() => algorithm.DiscoverVertex -= algorithm_DiscoverVertex));
        }
Пример #3
0
        /// <inheritdoc />
        public IDisposable Attach(IVertexTimeStamperAlgorithm <TVertex> algorithm)
        {
            if (algorithm is null)
            {
                throw new ArgumentNullException(nameof(algorithm));
            }

            algorithm.DiscoverVertex += OnVertexDiscovered;
            return(Finally(() => algorithm.DiscoverVertex -= OnVertexDiscovered));
        }
Пример #4
0
        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);
                }
            }));
        }
Пример #5
0
        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;
                }
            }));
        }
Пример #6
0
 public void Detach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm)
 {
     algorithm.DiscoverVertex -= new VertexEventHandler <TVertex>(DiscoverVertex);
     algorithm.FinishVertex   -= new VertexEventHandler <TVertex>(FinishVertex);
 }
Пример #7
0
 public void Attach(IVertexTimeStamperAlgorithm <TVertex, TEdge> algorithm)
 {
     algorithm.DiscoverVertex += new VertexEventHandler <TVertex>(algorithm_DiscoverVertex);
 }