コード例 #1
0
        public OverseerWatcher(IPoller poller, IWatcher watcher)
            : base(watcher)
        {
            _reportedItems     = new HashSet <String>();
            _reportedFilesLock = new Object();

            InitPollerErrorPolicies();

            // Initiating poller
            _poller = poller;
            if (_poller.Path != watcher.Path)
            {
                _poller.Path = watcher.Path;
            }

            EnableRaisingEvents = false;

            _poller.Created += OnCreatedPolled;
            _poller.Deleted += OnDeletedPolled;
            _poller.Error   += OnPollerError;

            // Getting initial directory content by forcing a poll
            _poller.PollingType = PollingType.Poll;
            _poller.ForcePoll();

            // For the rest of the OverseerWatcher's lifespan, keep the poller as a 'watcher'
            _poller.PollingType = PollingType.Watch;
        }
コード例 #2
0
 public Supervisor(IPoller<TaskToBeWorked> poller, IRepository repository, IMessagePublisher<TaskToBeWorked> publisher, ILogger<Supervisor> logger)
 {
     _poller = poller;
     _repository = repository;
     _publisher = publisher;
     _logger = logger;
 }
コード例 #3
0
ファイル: TSocket.cs プロジェクト: rvpoochen/Egametang
 public TSocket(IPoller poller)
 {
     this.poller             = poller;
     this.socket             = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     this.innArgs.Completed += this.OnComplete;
     this.outArgs.Completed += this.OnComplete;
 }
コード例 #4
0
ファイル: TSocket.cs プロジェクト: adan830/Egametang
		public TSocket(IPoller poller)
		{
			this.poller = poller;
			this.socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
			this.innArgs.Completed += this.OnComplete;
			this.outArgs.Completed += this.OnComplete;
		}
コード例 #5
0
 public OrderLooper(IPoller poller, ISettings settings, IProcessor processor)
 {
     _poller    = poller;
     _settings  = settings;
     _processor = processor;
     _isLooping = false;
 }
コード例 #6
0
 public Supervisor(IPoller <TaskToBeWorked> poller, IDal dal, IMessagePublisher <TaskToBeWorked> publisher, ILogger <Supervisor> logger)
 {
     _poller    = poller;
     _dal       = dal;
     _publisher = publisher;
     _logger    = logger;
 }
コード例 #7
0
 public void Unregister(IPoller poller)
 {
     Timer timer;
     if (pollers.TryRemove(poller, out timer))
     {
         timer.Dispose();
     }
 }
コード例 #8
0
        private void StoppedPolling(IPoller pollerToStart)
        {
            var pollerTaskInfo = runningPollerTasks.FirstOrDefault(x => x.Poller == pollerToStart);

            if (pollerTaskInfo != null)
            {
                runningPollerTasks.Remove(pollerTaskInfo);
            }
        }
コード例 #9
0
        /// <summary>
        /// Default Constructor
        /// </summary>
        /// <param name="processor">Processor</param>
        /// <param name="poller">Poller</param>
        /// <param name="tracker">Tracker</param>
        /// <param name="minimumPeriodInSeconds">Minimum, time in seconds</param>
        /// <param name="maximumPeriodInSeconds">Maximum, time in seconds</param>
        public DequeueBatchDynamic(IPoller <T> poller, IProcessor <T> processor, ITimingTracker tracker, int minimumPeriodInSeconds = BaseTimes.DefaultMinimumTiming, int maximumPeriodInSeconds = BaseTimes.DefaultMaximumTiming)
            : base(poller, processor, DequeueBatch <T> .MinimumBatchSize, minimumPeriodInSeconds, maximumPeriodInSeconds)
        {
            if (null == tracker)
            {
                throw new ArgumentNullException("tracker");
            }

            this.tracker = tracker;
        }
コード例 #10
0
        public PollerTaskInfo(Task task, IPoller poller, CancellationTokenSource cancellationTokenSource)
        {
            Verify.RequireNotNull(task, "task");
            Verify.RequireNotNull(poller, "Poller");
            Verify.RequireNotNull(cancellationTokenSource, "cancellationTokenSource");

            Task   = task;
            Poller = poller;
            CancellationTokenSource = cancellationTokenSource;
        }
コード例 #11
0
 public ObservableAdresses(IPoller poller)
 {
     var onEvent = Observable.Create<IAddressAndValue>(o => {
         EventHandler<IAddressAndValue> handler = (_, e) => o.OnNext(e);
         poller.Read += handler;
         return Disposable.Create(() => poller.Read -= handler);
     }).Publish();
     _connection = onEvent.Connect();
     
     FastAdresses = new RateAdresses(onEvent, UpdateRate.High);
     SlowAdresses = new RateAdresses(onEvent, UpdateRate.Low);
 }
コード例 #12
0
        public PepinoQueueWorkerService()
        {
            var containerBuilder = new ContainerBuilder();            
            new ConfigureDatabaseWiring().Task(containerBuilder);
            new ConfigureAutomapperMappings().Task(containerBuilder);
            new ConfigureWorkerDependencies().Task(containerBuilder);
            IContainer container = containerBuilder.Build();

            _poller = container.Resolve<IPoller>();

            _secondsInterval = Config.GetQueueWorkerPollingIntervalSeconds();
        }
コード例 #13
0
        public void Register(IPoller poller)
        {
            var rp = poller.RecurranceParameters;
            if (rp == null) { throw new ArgumentNullException("IPoller instance does not have RecurranceParameters set"); }

            int milliseconds = (int)rp.Interval.TotalMilliseconds; // DOUBLECAST

            Timer timer = new Timer(OnTimerElapsed, poller, milliseconds, milliseconds);

            if (!pollers.TryAdd(poller, timer)) throw new DuplicateNotAllowedException();

            //poller.RecurranceParameters.Interval
        }
コード例 #14
0
        /// <summary>
        /// Default Constructor
        /// </summary>
        /// <param name="processor">Processor</param>
        /// <param name="poller">Poller</param>
        /// <param name="minimumPeriodInSeconds">Minimum, time in seconds</param>
        /// <param name="maximumPeriodInSeconds">Maximum, time in seconds</param>
        public Dequeue(IPoller <T> poller, IProcessor <T> processor, int minimumPeriodInSeconds = BaseTimes.DefaultMinimumTiming, int maximumPeriodInSeconds = BaseTimes.DefaultMaximumTiming)
        {
            if (null == poller)
            {
                throw new ArgumentNullException("poller");
            }
            if (null == processor)
            {
                throw new ArgumentNullException("processor");
            }

            this.poller    = poller;
            this.processor = processor;
            this.MinimumPeriodInSeconds = 0 >= minimumPeriodInSeconds ? BaseTimes.DefaultMinimumTiming : minimumPeriodInSeconds;
            this.MaximumPeriodInSeconds = minimumPeriodInSeconds >= maximumPeriodInSeconds ? BaseTimes.DefaultMaximumTiming : maximumPeriodInSeconds;
        }
コード例 #15
0
        public PollProcessor(PollProcessorEndpoint endpoint, IPoller poller)
        {
            if (endpoint == null)
            {
                throw new ArgumentNullException("endpoint");
            }

            if (poller == null)
            {
                throw new ArgumentNullException("poller");
            }

            this.Endpoint = endpoint;
            this.Poller = poller;

            this.timer = new Timer(this.Endpoint.IntervalSecs * 1000) { AutoReset = true };
            this.timer.Elapsed += this.TimerElapsed;
        }
コード例 #16
0
        public override Object Clone()
        {
            IPoller clonedPoller = (IPoller)_poller.Clone();

            IWatcher clonedEncapsWatcher = (IWatcher)InternalWatcher.Clone();

            OverseerWatcher clonedOverseerWatcher = new OverseerWatcher(clonedPoller, clonedEncapsWatcher)
            {
                PollerReportsDelay = PollerReportsDelay
            };

            clonedOverseerWatcher.ClearPolicies();
            foreach (WatcherErrorHandlingPolicy policy in ErrorHandlingPolicies)
            {
                clonedOverseerWatcher.AddPolicy(policy);
            }

            return(clonedOverseerWatcher);
        }
コード例 #17
0
        public PollProcessor(PollProcessorEndpoint endpoint, IPoller poller)
        {
            if (endpoint == null)
            {
                throw new ArgumentNullException("endpoint");
            }

            if (poller == null)
            {
                throw new ArgumentNullException("poller");
            }

            this.Endpoint = endpoint;
            this.Poller   = poller;

            this.timer = new Timer(this.Endpoint.IntervalSecs * 1000)
            {
                AutoReset = true
            };
            this.timer.Elapsed += this.TimerElapsed;
        }
コード例 #18
0
 public OverseerWatcher(IPoller poller, FileSystemWatcher watcher)
     : this(poller, new WatcherAdapter(watcher))
 {
 }
コード例 #19
0
 /// <summary>
 /// Default Constructor
 /// </summary>
 /// <param name="processor">Processor</param>
 /// <param name="poller">Poller</param>
 /// <param name="batchCount">Number of items to dequeue at a time</param>
 /// <param name="minimumPeriodInSeconds">Minimum, time in seconds</param>
 /// <param name="maximumPeriodInSeconds">Maximum, time in seconds</param>
 public DequeueBatch(IPoller <T> poller, IProcessor <T> processor, byte batchCount = 5, int minimumPeriodInSeconds = BaseTimes.DefaultMinimumTiming, int maximumPeriodInSeconds = BaseTimes.DefaultMaximumTiming)
     : base(poller, processor, minimumPeriodInSeconds, maximumPeriodInSeconds)
 {
     this.batchCount = batchCount == byte.MinValue ? MinimumBatchSize : batchCount;
 }
コード例 #20
0
ファイル: Module1.cs プロジェクト: rdrrichards/WpfPrismSO
 public Module1(IPoller poller)
 {
     _poller = poller;
 }
コード例 #21
0
 public PollForm()
 {
     poller = new Poller();
     InitializeComponent();
 }
コード例 #22
0
 public OverseerWatcher(IPoller poller)
     : this(poller, new WatcherAdapter(poller.Path, poller.Filter))
 {
 }
コード例 #23
0
ファイル: Ref.cs プロジェクト: zesys/nacos-sdk-csharp
 public Ref(List <Pair <T> > itemsWithWeight)
 {
     this.ItemsWithWeight = itemsWithWeight;
     this.Poller          = new GenericPoller <T>(Items);
 }