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)
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 
51 };
52 
53 
58 LUMIERA_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
78 
81 LUMIERA_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 */
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:185
Lumiera interface macros and structures.
#define LUIDGEN
LUIDGEN will be replaced by the &#39;luidgen&#39; tool with a random uuid.
Definition: luid.h:87
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