A game about forced loneliness, made by TACStudios
1using System;
2using System.Timers;
3
4using Codice.Client.Common.Threading;
5
6namespace Unity.PlasticSCM.Editor.UI
7{
8 internal class UnityPlasticTimerBuilder : IPlasticTimerBuilder
9 {
10 IPlasticTimer IPlasticTimerBuilder.Get(bool bModalMode, ThreadWaiter.TimerTick timerTickDelegate)
11 {
12 return new UnityPlasticTimer(DEFAULT_TIMER_INTERVAL, timerTickDelegate);
13 }
14
15 IPlasticTimer IPlasticTimerBuilder.Get(bool bModalMode, int timerInterval, ThreadWaiter.TimerTick timerTickDelegate)
16 {
17 return new UnityPlasticTimer(timerInterval, timerTickDelegate);
18 }
19
20 const int DEFAULT_TIMER_INTERVAL = 100;
21 }
22
23 internal class UnityPlasticTimer : IPlasticTimer
24 {
25 internal UnityPlasticTimer(int timerInterval, ThreadWaiter.TimerTick timerTickDelegate)
26 {
27 mTimerInterval = timerInterval;
28 mTimerTickDelegate = timerTickDelegate;
29 }
30
31 void IPlasticTimer.Start()
32 {
33 mTimer = new Timer();
34 mTimer.Interval = mTimerInterval;
35 mTimer.Elapsed += OnTimerTick;
36
37 mTimer.Start();
38 }
39
40 void IPlasticTimer.Stop()
41 {
42 mTimer.Stop();
43 mTimer.Elapsed -= OnTimerTick;
44 mTimer.Dispose();
45 }
46
47 void OnTimerTick(object sender, EventArgs e)
48 {
49 mTimerTickDelegate();
50 }
51
52 Timer mTimer;
53 int mTimerInterval;
54 ThreadWaiter.TimerTick mTimerTickDelegate;
55 }
56}