1 module dmagick.c.magickDelegate;
2 
3 import core.stdc.stdio;
4 
5 import dmagick.c.exception;
6 import dmagick.c.image;
7 import dmagick.c.magickType;
8 import dmagick.c.magickVersion;
9 import dmagick.c.semaphore;
10 
11 alias ptrdiff_t ssize_t;
12 
13 extern(C)
14 {
15 	struct DelegateInfo
16 	{
17 		char*
18 			path,
19 			decode,
20 			encode,
21 			commands;
22 
23 		ssize_t
24 			mode;
25 
26 		MagickBooleanType
27 			thread_support,
28 			spawn,
29 			stealth;
30 
31 		DelegateInfo*
32 			previous,
33 			next;
34 
35 		size_t
36 			signature;
37 
38 		static if ( MagickLibVersion >= 0x689 )
39 		{
40 			SemaphoreInfo* semaphore;
41 		}
42 	}
43 
44 	char*  GetDelegateCommand(const(ImageInfo)*, Image*, const(char)*, const(char)*, ExceptionInfo*);
45 	char** GetDelegateList(const(char)*,size_t *,ExceptionInfo *);
46 
47 	const(char)* GetDelegateCommands(const(DelegateInfo)*);
48 
49 	const(DelegateInfo)*  GetDelegateInfo(const(char)*, const(char)*, ExceptionInfo* exception);
50 	const(DelegateInfo)** GetDelegateInfoList(const(char)*, size_t*, ExceptionInfo*);
51 
52 	ssize_t GetDelegateMode(const(DelegateInfo)*);
53 
54 	MagickBooleanType DelegateComponentGenesis();
55 	MagickBooleanType GetDelegateThreadSupport(const(DelegateInfo)*);
56 	MagickBooleanType InvokeDelegate(ImageInfo*, Image*, const(char)*, const(char)*, ExceptionInfo*);
57 	MagickBooleanType ListDelegateInfo(FILE*, ExceptionInfo*);
58 
59 	void DelegateComponentTerminus();
60 }