Lumiera 0.pre.04~rc.1
»edit your freedom«
Loading...
Searching...
No Matches
interface-descriptor.h
Go to the documentation of this file.
1/*
2 INTERFACE-DESCRIPTOR.h - Metadata interface for Lumiera interfaces
3
4 Copyright (C)
5 2008, Christian Thaeter <ct@pipapo.org>
6
7  **Lumiera** is free software; you can redistribute it and/or modify it
8  under the terms of the GNU General Public License as published by the
9  Free Software Foundation; either version 2 of the License, or (at your
10  option) any later version. See the file COPYING for further details.
11
12*/
13
14
24#ifndef COMMON_INTERFACEDESCRIPTOR_H
25#define COMMON_INTERFACEDESCRIPTOR_H
26
27#include "common/interface.h"
28
29
52
53
58LUMIERA_INTERFACE_DECLARE (lumieraorg_interfacedescriptor, 0,
59 /* The following slots are some human-readable descriptions of certain properties */
60 LUMIERA_INTERFACE_SLOT (const char*, name, (LumieraInterface)),
61 LUMIERA_INTERFACE_SLOT (const char*, brief, (LumieraInterface)),
62 LUMIERA_INTERFACE_SLOT (const char*, homepage, (LumieraInterface)),
63 LUMIERA_INTERFACE_SLOT (const char*, version, (LumieraInterface)),
64 LUMIERA_INTERFACE_SLOT (const char*, author, (LumieraInterface)),
65 LUMIERA_INTERFACE_SLOT (const char*, email, (LumieraInterface)),
66 LUMIERA_INTERFACE_SLOT (const char*, copyright, (LumieraInterface)),
67 LUMIERA_INTERFACE_SLOT (const char*, license, (LumieraInterface)),
68
69 /* some flags for properties */
70 LUMIERA_INTERFACE_SLOT (int, state, (LumieraInterface)),
71
72 /* compare 2 version strings in a custom way */
73 LUMIERA_INTERFACE_SLOT (int, versioncmp, (const char*, const char*))
74 );
75
76
77#if 0
81LUMIERA_INTERFACE_INSTANCE (lumieraorg_interfacedescriptor, 0,
82 /*IDENTIFIER*/,
83 NULL, NULL, NULL,
84 LUMIERA_INTERFACE_INLINE (name, LUIDGEN,
85 const char*, (LumieraInterface iface),
86 {return /*NAME*/;}
87 ),
88 LUMIERA_INTERFACE_INLINE (brief, LUIDGEN,
89 const char*, (LumieraInterface iface),
90 {return /*BRIEF*/;}
91 ),
92 LUMIERA_INTERFACE_INLINE (homepage, LUIDGEN,
93 const char*, (LumieraInterface iface),
94 {return /*HOMEPAGE*/;}
95 ),
96 LUMIERA_INTERFACE_INLINE (version, LUIDGEN,
97 const char*, (LumieraInterface iface),
98 {return /*VERSION*/;}
99 ),
100 LUMIERA_INTERFACE_INLINE (author, LUIDGEN,
101 const char*, (LumieraInterface iface),
102 {return /*AUTHOR*/;}
103 ),
104 LUMIERA_INTERFACE_INLINE (email, LUIDGEN,
105 const char*, (LumieraInterface iface),
106 {return /*EMAIL*/;}
107 ),
108 LUMIERA_INTERFACE_INLINE (copyright, LUIDGEN,
109 const char*, (LumieraInterface iface),
110 {
111 return
112 "Copyright (C) "/*ORGANIZATION*/"\n"
113 " "/*YEARS*/" "/*AUTHOR*/" <"/*EMAIL*/">";
114 }
115 ),
116 LUMIERA_INTERFACE_INLINE (license, LUIDGEN,
117 const char*, (LumieraInterface iface),
118 {
119 return
120 /*LICENSE*/;
121 }
122 ),
123
124 LUMIERA_INTERFACE_INLINE (state, LUIDGEN,
125 int, (LumieraInterface iface),
126 {return /*LUMIERA_INTERFACE_EXPERIMENTAL*/;}
127 ),
128
129 LUMIERA_INTERFACE_INLINE (versioncmp, LUIDGEN,
130 int, (const char* a, const char* b),
131 {return /*COMPARERESULT*/;}
132 )
133 );
134#endif
135
136
137#endif /* COMMON_INTERFACEDESCRIPTOR_H */
138/*
139// Local Variables:
140// mode: C
141// c-file-style: "gnu"
142// indent-tabs-mode: nil
143// End:
144*/
lumiera_interface_state
Release state of an interface implementation.
@ LUMIERA_INTERFACE_BETA
Finished but not finally released implementation for open testing.
@ LUMIERA_INTERFACE_DEPRECATED
Old implementation which is now unmaintained and will be removed soon.
@ LUMIERA_INTERFACE_BROKEN
some known bugs exist which won't be fixed, don't use this
@ LUMIERA_INTERFACE_STABLE
Finished, released and maintained implementation.
@ LUMIERA_INTERFACE_EXPERIMENTAL
Not finished development code.
Lumiera interface macros and structures.
#define LUMIERA_INTERFACE_DECLARE(name, version,...)
Declare an interface.
Definition interface.h:154
#define LUMIERA_INTERFACE_INSTANCE(iname, version, name, descriptor, acquire, release,...)
Define an interface instance.
Definition interface.h:185
lumiera_interface * LumieraInterface
Definition interface.h:355
return NULL
Definition llist.h:586
#define LUIDGEN
LUIDGEN will be replaced by the 'luidgen' tool with a random uuid.
Definition luid.h:87