view Implab.Test/MockPollComponent.cs @ 262:f1696cdc3d7a v3 v3.0.8

Added IInitializable.Initialize() overload Added IRunnable.Start(), IRunnable.Start() overloads Fixed cancellation of the current operation when Stop() is called More tests
author cin
date Mon, 16 Apr 2018 02:12:39 +0300
parents 547a2fc0d93e
children
line wrap: on
line source

using System;
using System.Threading;
using System.Threading.Tasks;
using Implab.Components;

namespace Implab.Test {
    public class MockPollComponent : PollingComponent {

        public Func<CancellationToken,Task> PollWorker { get; set;}

        public Func<CancellationToken, Task> StartWorker { get; set; }

        public Func<CancellationToken, Task> StopWorker { get; set; }

        public MockPollComponent(bool initialized) : base(initialized) {
        }

        protected async override Task Poll(CancellationToken ct) {
            if(PollWorker!= null)
                await PollWorker.Invoke(ct);
        }

        protected async override Task StopInternalAsync(CancellationToken ct) {
            await base.StopInternalAsync(ct);
            if (StopWorker != null)
                await StopWorker.Invoke(ct);
        }

        protected async override Task StartInternalAsync(CancellationToken ct) {
            await base.StartInternalAsync(ct);
            if (StartWorker != null)
                await StartWorker.Invoke(ct);
        }


    }
}