[graphicsmagick] registry `in` -> `const scope`
[magickd.git] / graphicsmagick_c / src / graphicsmagick_c / magick / registry.d
blob9869cabfc3c0943fd9e7e03aa80051a775545047
1 /*
2 Copyright (C) 2003 GraphicsMagick Group
3 Copyright (C) 2002 ImageMagick Studio
5 This program is covered by multiple licenses, which are described in
6 Copyright.txt. You should have received a copy of Copyright.txt with this
7 package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.
9 Magick registry methods.
11 // Complete graphicsmagick_c wrapper for version 1.3.
12 module graphicsmagick_c.magick.registry;
14 import core.stdc.config : c_long, c_ulong;
16 import graphicsmagick_c.magick.error : ExceptionInfo;
17 import graphicsmagick_c.magick.image : Image;
20 Enum declarations.
22 enum : RegistryType
24 UndefinedRegsitryType,
25 ImageRegsitryType,
26 ImageInfoRegistryType
28 alias RegistryType = int;
30 struct _RegistryInfo
32 c_long id;
34 RegistryType type;
36 void* blob;
38 size_t length;
40 c_ulong signature;
42 _RegistryInfo* previous;
43 _RegistryInfo* next;
45 alias RegistryInfo = _RegistryInfo;
47 version (GMagick_Static)
49 @system @nogc nothrow extern (C):
51 Image* GetImageFromMagickRegistry(const scope char*, c_long* id, ExceptionInfo*);
53 c_long SetMagickRegistry(const scope RegistryType, const scope void*, const scope size_t, ExceptionInfo*);
55 uint DeleteMagickRegistry(const scope c_long);
57 void DestroyMagickRegistry();
58 void* GetMagickRegistry(const scope c_long, RegistryType*, size_t*, ExceptionInfo*);
60 else
62 @system @nogc nothrow extern(C)
64 alias mGetImageFromMagickRegistry = Image* function(const scope char*, c_long* id, ExceptionInfo*);
66 alias mSetMagickRegistry = c_long function(const scope RegistryType, const scope void*, const scope size_t, ExceptionInfo*);
68 alias mDeleteMagickRegistry = uint function(const scope c_long);
70 alias mDestroyMagickRegistry = void function();
71 alias mGetMagickRegistry = void* function(const scope c_long, RegistryType*, size_t*, ExceptionInfo*);
74 __gshared
76 mGetImageFromMagickRegistry GetImageFromMagickRegistry;
78 mSetMagickRegistry SetMagickRegistry;
80 mDeleteMagickRegistry DeleteMagickRegistry;
82 mDestroyMagickRegistry DestroyMagickRegistry;
83 mGetMagickRegistry GetMagickRegistry;
86 package(graphicsmagick_c)
88 import core.sys.posix.dlfcn : dlerror, dlsym;
89 import core.stdc.stdio : fprintf, stderr;
91 bool _loadRegistryH(void* dlib)
93 char* errmsg;
94 bool success = true;
96 GetImageFromMagickRegistry = cast(mGetImageFromMagickRegistry)dlsym(dlib, "GetImageFromMagickRegistry");
97 if (null !is (errmsg = dlerror())) {
98 debug(graphicsmagick_c)
100 fprintf(stderr, "ERROR graphicsmagick_c.magick.registry:\n %s\n", errmsg);
102 success = false;
105 SetMagickRegistry = cast(mSetMagickRegistry)dlsym(dlib, "SetMagickRegistry");
106 if (null !is (errmsg = dlerror())) {
107 debug(graphicsmagick_c)
109 fprintf(stderr, "ERROR graphicsmagick_c.magick.registry:\n %s\n", errmsg);
111 success = false;
114 DeleteMagickRegistry = cast(mDeleteMagickRegistry)dlsym(dlib, "DeleteMagickRegistry");
115 if (null !is (errmsg = dlerror())) {
116 debug(graphicsmagick_c)
118 fprintf(stderr, "ERROR graphicsmagick_c.magick.registry:\n %s\n", errmsg);
120 success = false;
123 DestroyMagickRegistry = cast(mDestroyMagickRegistry)dlsym(dlib, "DestroyMagickRegistry");
124 if (null !is (errmsg = dlerror())) {
125 debug(graphicsmagick_c)
127 fprintf(stderr, "ERROR graphicsmagick_c.magick.registry:\n %s\n", errmsg);
129 success = false;
131 GetMagickRegistry = cast(mGetMagickRegistry)dlsym(dlib, "GetMagickRegistry");
132 if (null !is (errmsg = dlerror())) {
133 debug(graphicsmagick_c)
135 fprintf(stderr, "ERROR graphicsmagick_c.magick.registry:\n %s\n", errmsg);
137 success = false;
140 return success;