Lumiera  0.pre.03
»edit your freedom«
interface-descriptor.h
Go to the documentation of this file.
1 /*
2  INTERFACE-DESCRIPTOR.h - Metadata interface for Lumiera interfaces
3 
4  Copyright (C) Lumiera.org
5  2008, Christian Thaeter <ct@pipapo.org>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
23 
33 #ifndef COMMON_INTERFACEDESCRIPTOR_H
34 #define COMMON_INTERFACEDESCRIPTOR_H
35 
36 #include "common/interface.h"
37 
38 
60 };
61 
62 
67 LUMIERA_INTERFACE_DECLARE (lumieraorg_interfacedescriptor, 0,
68  /* The following slots are some human-readable descriptions of certain properties */
69  LUMIERA_INTERFACE_SLOT (const char*, name, (LumieraInterface)),
70  LUMIERA_INTERFACE_SLOT (const char*, brief, (LumieraInterface)),
71  LUMIERA_INTERFACE_SLOT (const char*, homepage, (LumieraInterface)),
72  LUMIERA_INTERFACE_SLOT (const char*, version, (LumieraInterface)),
73  LUMIERA_INTERFACE_SLOT (const char*, author, (LumieraInterface)),
74  LUMIERA_INTERFACE_SLOT (const char*, email, (LumieraInterface)),
75  LUMIERA_INTERFACE_SLOT (const char*, copyright, (LumieraInterface)),
76  LUMIERA_INTERFACE_SLOT (const char*, license, (LumieraInterface)),
77 
78  /* some flags for properties */
79  LUMIERA_INTERFACE_SLOT (int, state, (LumieraInterface)),
80 
81  /* compare 2 version strings in a custom way */
82  LUMIERA_INTERFACE_SLOT (int, versioncmp, (const char*, const char*))
83  );
84 
85 
86 #if 0
87 
90 LUMIERA_INTERFACE_INSTANCE (lumieraorg_interfacedescriptor, 0,
91  /*IDENTIFIER*/,
92  NULL, NULL, NULL,
93  LUMIERA_INTERFACE_INLINE (name, LUIDGEN,
94  const char*, (LumieraInterface iface),
95  {return /*NAME*/;}
96  ),
97  LUMIERA_INTERFACE_INLINE (brief, LUIDGEN,
98  const char*, (LumieraInterface iface),
99  {return /*BRIEF*/;}
100  ),
101  LUMIERA_INTERFACE_INLINE (homepage, LUIDGEN,
102  const char*, (LumieraInterface iface),
103  {return /*HOMEPAGE*/;}
104  ),
105  LUMIERA_INTERFACE_INLINE (version, LUIDGEN,
106  const char*, (LumieraInterface iface),
107  {return /*VERSION*/;}
108  ),
109  LUMIERA_INTERFACE_INLINE (author, LUIDGEN,
110  const char*, (LumieraInterface iface),
111  {return /*AUTHOR*/;}
112  ),
113  LUMIERA_INTERFACE_INLINE (email, LUIDGEN,
114  const char*, (LumieraInterface iface),
115  {return /*EMAIL*/;}
116  ),
117  LUMIERA_INTERFACE_INLINE (copyright, LUIDGEN,
118  const char*, (LumieraInterface iface),
119  {
120  return
121  "Copyright (C) "/*ORGANIZATION*/"\n"
122  " "/*YEARS*/" "/*AUTHOR*/" <"/*EMAIL*/">";
123  }
124  ),
125  LUMIERA_INTERFACE_INLINE (license, LUIDGEN,
126  const char*, (LumieraInterface iface),
127  {
128  return
129  /*LICENSE*/;
130  }
131  ),
132 
133  LUMIERA_INTERFACE_INLINE (state, LUIDGEN,
134  int, (LumieraInterface iface),
135  {return /*LUMIERA_INTERFACE_EXPERIMENTAL*/;}
136  ),
137 
138  LUMIERA_INTERFACE_INLINE (versioncmp, LUIDGEN,
139  int, (const char* a, const char* b),
140  {return /*COMPARERESULT*/;}
141  )
142  );
143 #endif
144 
145 
146 #endif /* COMMON_INTERFACEDESCRIPTOR_H */
147 /*
148 // Local Variables:
149 // mode: C
150 // c-file-style: "gnu"
151 // indent-tabs-mode: nil
152 // End:
153 */
Finished, released and maintained implementation.
LUMIERA_INTERFACE_DECLARE(lumieraorg_interfacedescriptor, 0, LUMIERA_INTERFACE_SLOT(const char *, name,(LumieraInterface)), LUMIERA_INTERFACE_SLOT(const char *, brief,(LumieraInterface)), LUMIERA_INTERFACE_SLOT(const char *, homepage,(LumieraInterface)), LUMIERA_INTERFACE_SLOT(const char *, version,(LumieraInterface)), LUMIERA_INTERFACE_SLOT(const char *, author,(LumieraInterface)), LUMIERA_INTERFACE_SLOT(const char *, email,(LumieraInterface)), LUMIERA_INTERFACE_SLOT(const char *, copyright,(LumieraInterface)), LUMIERA_INTERFACE_SLOT(const char *, license,(LumieraInterface)), LUMIERA_INTERFACE_SLOT(int, state,(LumieraInterface)),)
Interface descriptor.
some known bugs exist which won&#39;t be fixed, don&#39;t use this
Not finished development code.
Finished but not finally released implementation for open testing.
#define LUMIERA_INTERFACE_INSTANCE(iname, version, name, descriptor, acquire, release,...)
Define an interface instance.
Definition: interface.h:194
Lumiera interface macros and structures.
#define LUIDGEN
LUIDGEN will be replaced by the &#39;luidgen&#39; tool with a random uuid.
Definition: luid.h:96
lumiera_interface_state
Release state of an interface implementation.
Old implementation which is now unmaintained and will be removed soon.
ElementBoxWidget::Config::Qualifier name(string id)
define the name-ID displayed in the caption