summaryrefslogtreecommitdiff
path: root/dmagick/c/timer.d
blob: 36603cecdb6e30cc103dfdc27555a5589e89b5e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
module dmagick.c.timer;

import dmagick.c.magickType;

extern(C)
{
	enum TimerState
	{
		UndefinedTimerState,
		StoppedTimerState,
		RunningTimerState
	}

	struct Timer
	{
		double
			start,
			stop,
			total;
	}

	struct TimerInfo
	{
		Timer
			user,
			elapsed;

		TimerState
			state;

		size_t
			signature;
	}

	double GetElapsedTime(TimerInfo*);
	double GetUserTime(TimerInfo*);

	MagickBooleanType ContinueTimer(TimerInfo*);

	TimerInfo* AcquireTimerInfo();
	TimerInfo* DestroyTimerInfo(TimerInfo*);

	void GetTimerInfo(TimerInfo*);
	void ResetTimer(TimerInfo*);
	void StartTimer(TimerInfo*, const MagickBooleanType);
}