1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3 <title>C-Pluff C API: cp_plugin_info_t Struct Reference</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
7 <!-- Generated by Doxygen 1.5.1 -->
10 <li><a href="index.html"><span>Main Page</span></a></li>
11 <li><a href="modules.html"><span>Modules</span></a></li>
12 <li id="current"><a href="annotated.html"><span>Data Structures</span></a></li>
13 <li><a href="files.html"><span>Files</span></a></li>
14 <li><a href="pages.html"><span>Related Pages</span></a></li>
18 <li><a href="annotated.html"><span>Data Structures</span></a></li>
19 <li><a href="functions.html"><span>Data Fields</span></a></li>
21 <h1>cp_plugin_info_t Struct Reference<br>
23 [<a class="el" href="group__cStructs.html">Data structures</a>]</small>
24 </h1><!-- doxytag: class="cp_plugin_info_t" -->Collaboration diagram for cp_plugin_info_t:<p><center><img src="structcp__plugin__info__t__coll__graph.png" border="0" usemap="#cp__plugin__info__t__coll__map" alt="Collaboration graph"></center>
25 <map name="cp__plugin__info__t__coll__map">
26 <area href="structcp__extension__t.html" shape="rect" coords="135,191,258,215" alt="">
27 <area href="structcp__ext__point__t.html" shape="rect" coords="351,191,468,215" alt="">
28 <area href="structcp__cfg__element__t.html" shape="rect" coords="6,99,144,123" alt="">
29 <area href="structcp__plugin__import__t.html" shape="rect" coords="268,7,418,31" alt="">
31 <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><hr><a name="_details"></a><h2>Detailed Description</h2>
32 Plug-in information structure captures information about a plug-in.
34 This information can be loaded from a plug-in descriptor using <a class="el" href="group__cFuncsPlugin.html#gcb92588ad3b48dab5e9487698f6ef437">cp_load_plugin_descriptor</a>. Information about installed plug-ins can be obtained using <a class="el" href="group__cFuncsPluginInfo.html#g4aba19886c68b2a3c1508c3b66110c12">cp_get_plugin_info</a> and <a class="el" href="group__cFuncsPluginInfo.html#g015373cf40c08ea4a346a1bac5656fb1">cp_get_plugins_info</a>. This structure corresponds to the <em>plugin</em> element in a plug-in descriptor.
36 <table border="0" cellpadding="0" cellspacing="0">
38 <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
39 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#f5351a0143adaf16c64b881aee01d893">identifier</a></td></tr>
41 <tr><td class="mdescLeft"> </td><td class="mdescRight">The obligatory unique identifier of the plugin. <a href="#f5351a0143adaf16c64b881aee01d893"></a><br></td></tr>
42 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#5ac083a645d964373f022d03df4849c8">name</a></td></tr>
44 <tr><td class="mdescLeft"> </td><td class="mdescRight">An optional plug-in name. <a href="#5ac083a645d964373f022d03df4849c8"></a><br></td></tr>
45 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#56abfaab87c46691c1ef3ad0df23e864">version</a></td></tr>
47 <tr><td class="mdescLeft"> </td><td class="mdescRight">An optional release version string. <a href="#56abfaab87c46691c1ef3ad0df23e864"></a><br></td></tr>
48 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#8bf76789248b4737d6a9a1175ceadca5">provider_name</a></td></tr>
50 <tr><td class="mdescLeft"> </td><td class="mdescRight">An optional provider name. <a href="#8bf76789248b4737d6a9a1175ceadca5"></a><br></td></tr>
51 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#bfb5abdafe1c5db02dcd2922b32be4e6">plugin_path</a></td></tr>
53 <tr><td class="mdescLeft"> </td><td class="mdescRight">Path of the plugin directory or NULL if not known. <a href="#bfb5abdafe1c5db02dcd2922b32be4e6"></a><br></td></tr>
54 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#80147b4cbaeac68ad7a02dfe9c732e43">abi_bw_compatibility</a></td></tr>
56 <tr><td class="mdescLeft"> </td><td class="mdescRight">Optional ABI compatibility information. <a href="#80147b4cbaeac68ad7a02dfe9c732e43"></a><br></td></tr>
57 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#a0db42bb2a075c5804c0aeecfab567d8">api_bw_compatibility</a></td></tr>
59 <tr><td class="mdescLeft"> </td><td class="mdescRight">Optional API compatibility information. <a href="#a0db42bb2a075c5804c0aeecfab567d8"></a><br></td></tr>
60 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#8b1942a723f6a68c9afad9e52b7e78d1">req_cpluff_version</a></td></tr>
62 <tr><td class="mdescLeft"> </td><td class="mdescRight">Optional C-Pluff version requirement. <a href="#8b1942a723f6a68c9afad9e52b7e78d1"></a><br></td></tr>
63 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#bca19d2e4af3752ceb056d638321b894">num_imports</a></td></tr>
65 <tr><td class="mdescLeft"> </td><td class="mdescRight">Number of import entries in the <a class="el" href="structcp__plugin__info__t.html#e03a6d473f95a77ad6de9d43610f8d39">imports</a> array. <a href="#bca19d2e4af3752ceb056d638321b894"></a><br></td></tr>
66 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcp__plugin__import__t.html">cp_plugin_import_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#e03a6d473f95a77ad6de9d43610f8d39">imports</a></td></tr>
68 <tr><td class="mdescLeft"> </td><td class="mdescRight">An array of <a class="el" href="structcp__plugin__info__t.html#bca19d2e4af3752ceb056d638321b894">num_imports</a> import entries. <a href="#e03a6d473f95a77ad6de9d43610f8d39"></a><br></td></tr>
69 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#e466145debd47625f99bbc780e8950ed">runtime_lib_name</a></td></tr>
71 <tr><td class="mdescLeft"> </td><td class="mdescRight">The base name of the plug-in runtime library, or NULL if none. <a href="#e466145debd47625f99bbc780e8950ed"></a><br></td></tr>
72 <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#3291d0de7ca4bbe510950be556641856">runtime_funcs_symbol</a></td></tr>
74 <tr><td class="mdescLeft"> </td><td class="mdescRight">The symbol pointing to the plug-in runtime function information or NULL if none. <a href="#3291d0de7ca4bbe510950be556641856"></a><br></td></tr>
75 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#845440eb771d52a4b271bfbd48fcb7ec">num_ext_points</a></td></tr>
77 <tr><td class="mdescLeft"> </td><td class="mdescRight">Number of extension points in <a class="el" href="structcp__plugin__info__t.html#8299ae4ef53289492911a1334494e405">ext_points</a> array. <a href="#845440eb771d52a4b271bfbd48fcb7ec"></a><br></td></tr>
78 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcp__ext__point__t.html">cp_ext_point_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#8299ae4ef53289492911a1334494e405">ext_points</a></td></tr>
80 <tr><td class="mdescLeft"> </td><td class="mdescRight">An array of <a class="el" href="structcp__plugin__info__t.html#845440eb771d52a4b271bfbd48fcb7ec">num_ext_points</a> extension points provided by this plug-in. <a href="#8299ae4ef53289492911a1334494e405"></a><br></td></tr>
81 <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#5774f2b85864891690291909ecbbf819">num_extensions</a></td></tr>
83 <tr><td class="mdescLeft"> </td><td class="mdescRight">Number of extensions in <a class="el" href="structcp__plugin__info__t.html#2288d4af96da6699b7a2c8b747bd42dc">extensions</a> array. <a href="#5774f2b85864891690291909ecbbf819"></a><br></td></tr>
84 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcp__extension__t.html">cp_extension_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structcp__plugin__info__t.html#2288d4af96da6699b7a2c8b747bd42dc">extensions</a></td></tr>
86 <tr><td class="mdescLeft"> </td><td class="mdescRight">An array of <a class="el" href="structcp__plugin__info__t.html#5774f2b85864891690291909ecbbf819">num_extensions</a> extensions provided by this plug-in. <a href="#2288d4af96da6699b7a2c8b747bd42dc"></a><br></td></tr>
88 <hr><h2>Field Documentation</h2>
89 <a class="anchor" name="f5351a0143adaf16c64b881aee01d893"></a><!-- doxytag: member="cp_plugin_info_t::identifier" ref="f5351a0143adaf16c64b881aee01d893" args="" -->
91 <div class="memproto">
92 <table class="memname">
94 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#f5351a0143adaf16c64b881aee01d893">identifier</a> </td>
101 The obligatory unique identifier of the plugin.
103 A recommended way to generate identifiers is to use domain name service (DNS) prefixes (for example, org.cpluff.ExamplePlugin) to avoid naming conflicts. This corresponds to the <em>id</em> attribute of the <em>plugin</em> element in a plug-in descriptor.
106 <a class="anchor" name="5ac083a645d964373f022d03df4849c8"></a><!-- doxytag: member="cp_plugin_info_t::name" ref="5ac083a645d964373f022d03df4849c8" args="" -->
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
111 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#5ac083a645d964373f022d03df4849c8">name</a> </td>
118 An optional plug-in name.
120 NULL if not available. The plug-in name is intended only for display purposes and the value can be localized. This corresponds to the <em>name</em> attribute of the <em>plugin</em> element in a plug-in descriptor.
123 <a class="anchor" name="56abfaab87c46691c1ef3ad0df23e864"></a><!-- doxytag: member="cp_plugin_info_t::version" ref="56abfaab87c46691c1ef3ad0df23e864" args="" -->
124 <div class="memitem">
125 <div class="memproto">
126 <table class="memname">
128 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#56abfaab87c46691c1ef3ad0df23e864">version</a> </td>
135 An optional release version string.
137 NULL if not available. This corresponds to the <em>version</em> attribute of the <em>plugin</em> element in a plug-in descriptor.
140 <a class="anchor" name="8bf76789248b4737d6a9a1175ceadca5"></a><!-- doxytag: member="cp_plugin_info_t::provider_name" ref="8bf76789248b4737d6a9a1175ceadca5" args="" -->
141 <div class="memitem">
142 <div class="memproto">
143 <table class="memname">
145 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#8bf76789248b4737d6a9a1175ceadca5">provider_name</a> </td>
152 An optional provider name.
154 NULL if not available. This is the name of the author or the organization providing the plug-in. The provider name is intended only for display purposes and the value can be localized. This corresponds to the <em>provider-name</em> attribute of the <em>plugin</em> element in a plug-in descriptor.
157 <a class="anchor" name="bfb5abdafe1c5db02dcd2922b32be4e6"></a><!-- doxytag: member="cp_plugin_info_t::plugin_path" ref="bfb5abdafe1c5db02dcd2922b32be4e6" args="" -->
158 <div class="memitem">
159 <div class="memproto">
160 <table class="memname">
162 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#bfb5abdafe1c5db02dcd2922b32be4e6">plugin_path</a> </td>
169 Path of the plugin directory or NULL if not known.
171 This is the (absolute or relative) path to the plug-in directory containing plug-in data and the plug-in runtime library. The value corresponds to the path specified to <a class="el" href="group__cFuncsPlugin.html#gcb92588ad3b48dab5e9487698f6ef437">cp_load_plugin_descriptor</a> when loading the plug-in.
174 <a class="anchor" name="80147b4cbaeac68ad7a02dfe9c732e43"></a><!-- doxytag: member="cp_plugin_info_t::abi_bw_compatibility" ref="80147b4cbaeac68ad7a02dfe9c732e43" args="" -->
175 <div class="memitem">
176 <div class="memproto">
177 <table class="memname">
179 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#80147b4cbaeac68ad7a02dfe9c732e43">abi_bw_compatibility</a> </td>
186 Optional ABI compatibility information.
188 NULL if not available. This is the earliest version of the plug-in interface the current interface is backwards compatible with when it comes to the application binary interface (ABI) of the plug-in. That is, plug-in clients compiled against any plug-in interface version from <em>abi_bw_compatibility</em> to <a class="el" href="structcp__plugin__info__t.html#56abfaab87c46691c1ef3ad0df23e864">version</a> (inclusive) can use the current version of the plug-in binary. This describes binary or runtime compatibility. The value corresponds to the <em>abi-compatibility</em> attribute of the <em>backwards-compatibility</em> element in a plug-in descriptor.
191 <a class="anchor" name="a0db42bb2a075c5804c0aeecfab567d8"></a><!-- doxytag: member="cp_plugin_info_t::api_bw_compatibility" ref="a0db42bb2a075c5804c0aeecfab567d8" args="" -->
192 <div class="memitem">
193 <div class="memproto">
194 <table class="memname">
196 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#a0db42bb2a075c5804c0aeecfab567d8">api_bw_compatibility</a> </td>
203 Optional API compatibility information.
205 NULL if not available. This is the earliest version of the plug-in interface the current interface is backwards compatible with when it comes to the application programming interface (API) of the plug-in. That is, plug-in clients written for any plug-in interface version from <em>api_bw_compatibility</em> to <a class="el" href="structcp__plugin__info__t.html#56abfaab87c46691c1ef3ad0df23e864">version</a> (inclusive) can be compiled against the current version of the plug-in API. This describes source or build time compatibility. The value corresponds to the <em>api-compatibility</em> attribute of the <em>backwards-compatibility</em> element in a plug-in descriptor.
208 <a class="anchor" name="8b1942a723f6a68c9afad9e52b7e78d1"></a><!-- doxytag: member="cp_plugin_info_t::req_cpluff_version" ref="8b1942a723f6a68c9afad9e52b7e78d1" args="" -->
209 <div class="memitem">
210 <div class="memproto">
211 <table class="memname">
213 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#8b1942a723f6a68c9afad9e52b7e78d1">req_cpluff_version</a> </td>
220 Optional C-Pluff version requirement.
222 NULL if not available. This is the version of the C-Pluff implementation the plug-in was compiled against. It is used to determine the compatibility of the plug-in runtime and the linked in C-Pluff implementation. Any C-Pluff version that is backwards compatible on binary level with the specified version fulfills the requirement.
225 <a class="anchor" name="bca19d2e4af3752ceb056d638321b894"></a><!-- doxytag: member="cp_plugin_info_t::num_imports" ref="bca19d2e4af3752ceb056d638321b894" args="" -->
226 <div class="memitem">
227 <div class="memproto">
228 <table class="memname">
230 <td class="memname">unsigned int <a class="el" href="structcp__plugin__info__t.html#bca19d2e4af3752ceb056d638321b894">num_imports</a> </td>
237 Number of import entries in the <a class="el" href="structcp__plugin__info__t.html#e03a6d473f95a77ad6de9d43610f8d39">imports</a> array.
242 <a class="anchor" name="e03a6d473f95a77ad6de9d43610f8d39"></a><!-- doxytag: member="cp_plugin_info_t::imports" ref="e03a6d473f95a77ad6de9d43610f8d39" args="" -->
243 <div class="memitem">
244 <div class="memproto">
245 <table class="memname">
247 <td class="memname"><a class="el" href="structcp__plugin__import__t.html">cp_plugin_import_t</a>* <a class="el" href="structcp__plugin__info__t.html#e03a6d473f95a77ad6de9d43610f8d39">imports</a> </td>
254 An array of <a class="el" href="structcp__plugin__info__t.html#bca19d2e4af3752ceb056d638321b894">num_imports</a> import entries.
256 These correspond to <em>import</em> elements in a plug-in descriptor.
259 <a class="anchor" name="e466145debd47625f99bbc780e8950ed"></a><!-- doxytag: member="cp_plugin_info_t::runtime_lib_name" ref="e466145debd47625f99bbc780e8950ed" args="" -->
260 <div class="memitem">
261 <div class="memproto">
262 <table class="memname">
264 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#e466145debd47625f99bbc780e8950ed">runtime_lib_name</a> </td>
271 The base name of the plug-in runtime library, or NULL if none.
273 A platform specific prefix (for example, "lib") and an extension (for example, ".dll" or ".so") may be added to the base name. This corresponds to the <em>library</em> attribute of the <em>runtime</em> element in a plug-in descriptor.
276 <a class="anchor" name="3291d0de7ca4bbe510950be556641856"></a><!-- doxytag: member="cp_plugin_info_t::runtime_funcs_symbol" ref="3291d0de7ca4bbe510950be556641856" args="" -->
277 <div class="memitem">
278 <div class="memproto">
279 <table class="memname">
281 <td class="memname">char* <a class="el" href="structcp__plugin__info__t.html#3291d0de7ca4bbe510950be556641856">runtime_funcs_symbol</a> </td>
288 The symbol pointing to the plug-in runtime function information or NULL if none.
290 The symbol with this name should point to an instance of <a class="el" href="structcp__plugin__runtime__t.html">cp_plugin_runtime_t</a> structure. This corresponds to the <em>funcs</em> attribute of the <em>runtime</em> element in a plug-in descriptor.
293 <a class="anchor" name="845440eb771d52a4b271bfbd48fcb7ec"></a><!-- doxytag: member="cp_plugin_info_t::num_ext_points" ref="845440eb771d52a4b271bfbd48fcb7ec" args="" -->
294 <div class="memitem">
295 <div class="memproto">
296 <table class="memname">
298 <td class="memname">unsigned int <a class="el" href="structcp__plugin__info__t.html#845440eb771d52a4b271bfbd48fcb7ec">num_ext_points</a> </td>
305 Number of extension points in <a class="el" href="structcp__plugin__info__t.html#8299ae4ef53289492911a1334494e405">ext_points</a> array.
310 <a class="anchor" name="8299ae4ef53289492911a1334494e405"></a><!-- doxytag: member="cp_plugin_info_t::ext_points" ref="8299ae4ef53289492911a1334494e405" args="" -->
311 <div class="memitem">
312 <div class="memproto">
313 <table class="memname">
315 <td class="memname"><a class="el" href="structcp__ext__point__t.html">cp_ext_point_t</a>* <a class="el" href="structcp__plugin__info__t.html#8299ae4ef53289492911a1334494e405">ext_points</a> </td>
322 An array of <a class="el" href="structcp__plugin__info__t.html#845440eb771d52a4b271bfbd48fcb7ec">num_ext_points</a> extension points provided by this plug-in.
324 These correspond to <em>extension-point</em> elements in a plug-in descriptor.
327 <a class="anchor" name="5774f2b85864891690291909ecbbf819"></a><!-- doxytag: member="cp_plugin_info_t::num_extensions" ref="5774f2b85864891690291909ecbbf819" args="" -->
328 <div class="memitem">
329 <div class="memproto">
330 <table class="memname">
332 <td class="memname">unsigned int <a class="el" href="structcp__plugin__info__t.html#5774f2b85864891690291909ecbbf819">num_extensions</a> </td>
339 Number of extensions in <a class="el" href="structcp__plugin__info__t.html#2288d4af96da6699b7a2c8b747bd42dc">extensions</a> array.
344 <a class="anchor" name="2288d4af96da6699b7a2c8b747bd42dc"></a><!-- doxytag: member="cp_plugin_info_t::extensions" ref="2288d4af96da6699b7a2c8b747bd42dc" args="" -->
345 <div class="memitem">
346 <div class="memproto">
347 <table class="memname">
349 <td class="memname"><a class="el" href="structcp__extension__t.html">cp_extension_t</a>* <a class="el" href="structcp__plugin__info__t.html#2288d4af96da6699b7a2c8b747bd42dc">extensions</a> </td>
356 An array of <a class="el" href="structcp__plugin__info__t.html#5774f2b85864891690291909ecbbf819">num_extensions</a> extensions provided by this plug-in.
358 These correspond to <em>extension</em> elements in a plug-in descriptor.
361 <hr>The documentation for this struct was generated from the following file:<ul>
362 <li><a class="el" href="cpluff_8h-source.html">cpluff.h</a></ul>
365 <a href="http://www.c-pluff.org/">C-Pluff</a>, a plug-in framework for C<br>
366 Copyright 2007 <a href="http://www.jlehtinen.net/">Johannes Lehtinen</a>
368 <p class="generated-by">
369 Generated on Fri Apr 6 15:40:57 2007 for C-Pluff C API by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1