iotivity 0.9.0
[platform/upstream/iotivity.git] / service / protocol-plugin / lib / cpluff / doc / reference / c-api / group__cFuncsPluginInfo.html
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: Plug-in and extension information</title>
4 <link href="doxygen.css" rel="stylesheet" type="text/css">
5 <link href="tabs.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <!-- Generated by Doxygen 1.5.1 -->
8 <div class="tabs">
9   <ul>
10     <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
11     <li><a href="modules.html"><span>Modules</span></a></li>
12     <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
13     <li><a href="files.html"><span>Files</span></a></li>
14     <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
15   </ul></div>
16 <h1>Plug-in and extension information<br>
17 <small>
18 [<a class="el" href="group__cFuncs.html">Functions</a>]</small>
19 </h1><hr><a name="_details"></a><h2>Detailed Description</h2>
20 These functions can be used to query information about the installed plug-ins, extension points and extensions or to listen for plug-in state changes. 
21 <p>
22 They may be used by the main program or by a plug-in runtime. 
23 <p>
24 <table border="0" cellpadding="0" cellspacing="0">
25 <tr><td></td></tr>
26 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
27 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcp__plugin__info__t.html">cp_plugin_info_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#g4aba19886c68b2a3c1508c3b66110c12">cp_get_plugin_info</a> (<a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *ctx, const char *id, <a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> *status)</td></tr>
28
29 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns static information about the specified plug-in.  <a href="#g4aba19886c68b2a3c1508c3b66110c12"></a><br></td></tr>
30 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcp__plugin__info__t.html">cp_plugin_info_t</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#g015373cf40c08ea4a346a1bac5656fb1">cp_get_plugins_info</a> (<a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *ctx, <a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> *status, int *num)</td></tr>
31
32 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns static information about the installed plug-ins.  <a href="#g015373cf40c08ea4a346a1bac5656fb1"></a><br></td></tr>
33 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcp__ext__point__t.html">cp_ext_point_t</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#g5fb5797d8d84e03275070666dc60a02d">cp_get_ext_points_info</a> (<a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *ctx, <a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> *status, int *num)</td></tr>
34
35 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns static information about the currently installed extension points.  <a href="#g5fb5797d8d84e03275070666dc60a02d"></a><br></td></tr>
36 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcp__extension__t.html">cp_extension_t</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#gc4321531959bb053be7698139b0ae168">cp_get_extensions_info</a> (<a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *ctx, const char *extpt_id, <a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> *status, int *num)</td></tr>
37
38 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns static information about the currently installed extension points.  <a href="#gc4321531959bb053be7698139b0ae168"></a><br></td></tr>
39 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#gbac266df43a4850cf43224aa7b863942">cp_release_info</a> (<a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *ctx, void *info)</td></tr>
40
41 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Releases a previously obtained reference counted information object.  <a href="#gbac266df43a4850cf43224aa7b863942"></a><br></td></tr>
42 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__cEnums.html#gd517a8088e2ed89fda71251d9c7b3252">cp_plugin_state_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#g926489fc366d412cd272ec4bfefe22e5">cp_get_plugin_state</a> (<a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *ctx, const char *id)</td></tr>
43
44 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the current state of the specified plug-in.  <a href="#g926489fc366d412cd272ec4bfefe22e5"></a><br></td></tr>
45 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#ge9930a241e859e9eb07e36981ef7077a">cp_register_plistener</a> (<a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *ctx, <a class="el" href="group__cTypedefsFuncs.html#g24fde3d7324169d8448700123aa97c7a">cp_plugin_listener_func_t</a> listener, void *user_data)</td></tr>
46
47 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Registers a plug-in listener with a plug-in context.  <a href="#ge9930a241e859e9eb07e36981ef7077a"></a><br></td></tr>
48 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#g2cd49b8752e8971b569ae3e39b41723e">cp_unregister_plistener</a> (<a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *ctx, <a class="el" href="group__cTypedefsFuncs.html#g24fde3d7324169d8448700123aa97c7a">cp_plugin_listener_func_t</a> listener)</td></tr>
49
50 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes a plug-in listener from a plug-in context.  <a href="#g2cd49b8752e8971b569ae3e39b41723e"></a><br></td></tr>
51 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcp__cfg__element__t.html">cp_cfg_element_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#g9868077c72df950607e2698153d593d1">cp_lookup_cfg_element</a> (<a class="el" href="structcp__cfg__element__t.html">cp_cfg_element_t</a> *base, const char *path)</td></tr>
52
53 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Traverses a configuration element tree and returns the specified element.  <a href="#g9868077c72df950607e2698153d593d1"></a><br></td></tr>
54 <tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__cFuncsPluginInfo.html#g13f5121ab21951d59d3c6b985ed6adcd">cp_lookup_cfg_value</a> (<a class="el" href="structcp__cfg__element__t.html">cp_cfg_element_t</a> *base, const char *path)</td></tr>
55
56 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Traverses a configuration element tree and returns the value of the specified element or attribute.  <a href="#g13f5121ab21951d59d3c6b985ed6adcd"></a><br></td></tr>
57 </table>
58 <hr><h2>Function Documentation</h2>
59 <a class="anchor" name="g4aba19886c68b2a3c1508c3b66110c12"></a><!-- doxytag: member="cpluff.h::cp_get_plugin_info" ref="g4aba19886c68b2a3c1508c3b66110c12" args="(cp_context_t *ctx, const char *id, cp_status_t *status)" -->
60 <div class="memitem">
61 <div class="memproto">
62       <table class="memname">
63         <tr>
64           <td class="memname"><a class="el" href="structcp__plugin__info__t.html">cp_plugin_info_t</a>* cp_get_plugin_info           </td>
65           <td>(</td>
66           <td class="paramtype"><a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *&nbsp;</td>
67           <td class="paramname"> <em>ctx</em>, </td>
68         </tr>
69         <tr>
70           <td class="paramkey"></td>
71           <td></td>
72           <td class="paramtype">const char *&nbsp;</td>
73           <td class="paramname"> <em>id</em>, </td>
74         </tr>
75         <tr>
76           <td class="paramkey"></td>
77           <td></td>
78           <td class="paramtype"><a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> *&nbsp;</td>
79           <td class="paramname"> <em>status</em></td><td>&nbsp;</td>
80         </tr>
81         <tr>
82           <td></td>
83           <td>)</td>
84           <td></td><td></td><td width="100%"></td>
85         </tr>
86       </table>
87 </div>
88 <div class="memdoc">
89
90 <p>
91 Returns static information about the specified plug-in. 
92 <p>
93 The returned information must not be modified and the caller must release the information by calling <a class="el" href="group__cFuncsPluginInfo.html#gbac266df43a4850cf43224aa7b863942">cp_release_info</a> when the information is not needed anymore. When a plug-in runtime calls this function it may pass NULL as the identifier to get information about the plug-in itself.<p>
94 <dl compact><dt><b>Parameters:</b></dt><dd>
95   <table border="0" cellspacing="2" cellpadding="0">
96     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the plug-in context </td></tr>
97     <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>identifier of the plug-in to be examined or NULL for self </td></tr>
98     <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>a pointer to the location where status code is to be stored, or NULL </td></tr>
99   </table>
100 </dl>
101 <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the information structure or NULL on failure </dd></dl>
102
103 </div>
104 </div><p>
105 <a class="anchor" name="g015373cf40c08ea4a346a1bac5656fb1"></a><!-- doxytag: member="cpluff.h::cp_get_plugins_info" ref="g015373cf40c08ea4a346a1bac5656fb1" args="(cp_context_t *ctx, cp_status_t *status, int *num)" -->
106 <div class="memitem">
107 <div class="memproto">
108       <table class="memname">
109         <tr>
110           <td class="memname"><a class="el" href="structcp__plugin__info__t.html">cp_plugin_info_t</a>** cp_get_plugins_info           </td>
111           <td>(</td>
112           <td class="paramtype"><a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *&nbsp;</td>
113           <td class="paramname"> <em>ctx</em>, </td>
114         </tr>
115         <tr>
116           <td class="paramkey"></td>
117           <td></td>
118           <td class="paramtype"><a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> *&nbsp;</td>
119           <td class="paramname"> <em>status</em>, </td>
120         </tr>
121         <tr>
122           <td class="paramkey"></td>
123           <td></td>
124           <td class="paramtype">int *&nbsp;</td>
125           <td class="paramname"> <em>num</em></td><td>&nbsp;</td>
126         </tr>
127         <tr>
128           <td></td>
129           <td>)</td>
130           <td></td><td></td><td width="100%"></td>
131         </tr>
132       </table>
133 </div>
134 <div class="memdoc">
135
136 <p>
137 Returns static information about the installed plug-ins. 
138 <p>
139 The returned information must not be modified and the caller must release the information by calling <a class="el" href="group__cFuncsPluginInfo.html#gbac266df43a4850cf43224aa7b863942">cp_release_info</a> when the information is not needed anymore.<p>
140 <dl compact><dt><b>Parameters:</b></dt><dd>
141   <table border="0" cellspacing="2" cellpadding="0">
142     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the plug-in context </td></tr>
143     <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>a pointer to the location where status code is to be stored, or NULL </td></tr>
144     <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>a pointer to the location where the number of returned plug-ins is stored, or NULL </td></tr>
145   </table>
146 </dl>
147 <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to a NULL-terminated list of pointers to plug-in information or NULL on failure </dd></dl>
148
149 </div>
150 </div><p>
151 <a class="anchor" name="g5fb5797d8d84e03275070666dc60a02d"></a><!-- doxytag: member="cpluff.h::cp_get_ext_points_info" ref="g5fb5797d8d84e03275070666dc60a02d" args="(cp_context_t *ctx, cp_status_t *status, int *num)" -->
152 <div class="memitem">
153 <div class="memproto">
154       <table class="memname">
155         <tr>
156           <td class="memname"><a class="el" href="structcp__ext__point__t.html">cp_ext_point_t</a>** cp_get_ext_points_info           </td>
157           <td>(</td>
158           <td class="paramtype"><a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *&nbsp;</td>
159           <td class="paramname"> <em>ctx</em>, </td>
160         </tr>
161         <tr>
162           <td class="paramkey"></td>
163           <td></td>
164           <td class="paramtype"><a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> *&nbsp;</td>
165           <td class="paramname"> <em>status</em>, </td>
166         </tr>
167         <tr>
168           <td class="paramkey"></td>
169           <td></td>
170           <td class="paramtype">int *&nbsp;</td>
171           <td class="paramname"> <em>num</em></td><td>&nbsp;</td>
172         </tr>
173         <tr>
174           <td></td>
175           <td>)</td>
176           <td></td><td></td><td width="100%"></td>
177         </tr>
178       </table>
179 </div>
180 <div class="memdoc">
181
182 <p>
183 Returns static information about the currently installed extension points. 
184 <p>
185 The returned information must not be modified and the caller must release the information by calling <a class="el" href="group__cFuncsPluginInfo.html#gbac266df43a4850cf43224aa7b863942">cp_release_info</a> when the information is not needed anymore.<p>
186 <dl compact><dt><b>Parameters:</b></dt><dd>
187   <table border="0" cellspacing="2" cellpadding="0">
188     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the plug-in context </td></tr>
189     <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>a pointer to the location where status code is to be stored, or NULL </td></tr>
190     <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>filled with the number of returned extension points, if non-NULL </td></tr>
191   </table>
192 </dl>
193 <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to a NULL-terminated list of pointers to extension point information or NULL on failure </dd></dl>
194
195 </div>
196 </div><p>
197 <a class="anchor" name="gc4321531959bb053be7698139b0ae168"></a><!-- doxytag: member="cpluff.h::cp_get_extensions_info" ref="gc4321531959bb053be7698139b0ae168" args="(cp_context_t *ctx, const char *extpt_id, cp_status_t *status, int *num)" -->
198 <div class="memitem">
199 <div class="memproto">
200       <table class="memname">
201         <tr>
202           <td class="memname"><a class="el" href="structcp__extension__t.html">cp_extension_t</a>** cp_get_extensions_info           </td>
203           <td>(</td>
204           <td class="paramtype"><a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *&nbsp;</td>
205           <td class="paramname"> <em>ctx</em>, </td>
206         </tr>
207         <tr>
208           <td class="paramkey"></td>
209           <td></td>
210           <td class="paramtype">const char *&nbsp;</td>
211           <td class="paramname"> <em>extpt_id</em>, </td>
212         </tr>
213         <tr>
214           <td class="paramkey"></td>
215           <td></td>
216           <td class="paramtype"><a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> *&nbsp;</td>
217           <td class="paramname"> <em>status</em>, </td>
218         </tr>
219         <tr>
220           <td class="paramkey"></td>
221           <td></td>
222           <td class="paramtype">int *&nbsp;</td>
223           <td class="paramname"> <em>num</em></td><td>&nbsp;</td>
224         </tr>
225         <tr>
226           <td></td>
227           <td>)</td>
228           <td></td><td></td><td width="100%"></td>
229         </tr>
230       </table>
231 </div>
232 <div class="memdoc">
233
234 <p>
235 Returns static information about the currently installed extension points. 
236 <p>
237 The returned information must not be modified and the caller must release the information by calling <a class="el" href="group__cFuncsPluginInfo.html#gbac266df43a4850cf43224aa7b863942">cp_release_info</a> when the information is not needed anymore.<p>
238 <dl compact><dt><b>Parameters:</b></dt><dd>
239   <table border="0" cellspacing="2" cellpadding="0">
240     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the plug-in context </td></tr>
241     <tr><td valign="top"></td><td valign="top"><em>extpt_id</em>&nbsp;</td><td>the extension point identifier or NULL for all extensions </td></tr>
242     <tr><td valign="top"></td><td valign="top"><em>status</em>&nbsp;</td><td>a pointer to the location where status code is to be stored, or NULL </td></tr>
243     <tr><td valign="top"></td><td valign="top"><em>num</em>&nbsp;</td><td>a pointer to the location where the number of returned extension points is to be stored, or NULL </td></tr>
244   </table>
245 </dl>
246 <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to a NULL-terminated list of pointers to extension information or NULL on failure </dd></dl>
247
248 </div>
249 </div><p>
250 <a class="anchor" name="gbac266df43a4850cf43224aa7b863942"></a><!-- doxytag: member="cpluff.h::cp_release_info" ref="gbac266df43a4850cf43224aa7b863942" args="(cp_context_t *ctx, void *info)" -->
251 <div class="memitem">
252 <div class="memproto">
253       <table class="memname">
254         <tr>
255           <td class="memname">void cp_release_info           </td>
256           <td>(</td>
257           <td class="paramtype"><a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *&nbsp;</td>
258           <td class="paramname"> <em>ctx</em>, </td>
259         </tr>
260         <tr>
261           <td class="paramkey"></td>
262           <td></td>
263           <td class="paramtype">void *&nbsp;</td>
264           <td class="paramname"> <em>info</em></td><td>&nbsp;</td>
265         </tr>
266         <tr>
267           <td></td>
268           <td>)</td>
269           <td></td><td></td><td width="100%"></td>
270         </tr>
271       </table>
272 </div>
273 <div class="memdoc">
274
275 <p>
276 Releases a previously obtained reference counted information object. 
277 <p>
278 The documentation for functions returning such information refers to this function. The information must not be accessed after it has been released. The framework uses reference counting to deallocate the information when it is not in use anymore.<p>
279 <dl compact><dt><b>Parameters:</b></dt><dd>
280   <table border="0" cellspacing="2" cellpadding="0">
281     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the plug-in context </td></tr>
282     <tr><td valign="top"></td><td valign="top"><em>info</em>&nbsp;</td><td>the information to be released </td></tr>
283   </table>
284 </dl>
285
286 </div>
287 </div><p>
288 <a class="anchor" name="g926489fc366d412cd272ec4bfefe22e5"></a><!-- doxytag: member="cpluff.h::cp_get_plugin_state" ref="g926489fc366d412cd272ec4bfefe22e5" args="(cp_context_t *ctx, const char *id)" -->
289 <div class="memitem">
290 <div class="memproto">
291       <table class="memname">
292         <tr>
293           <td class="memname"><a class="el" href="group__cEnums.html#gd517a8088e2ed89fda71251d9c7b3252">cp_plugin_state_t</a> cp_get_plugin_state           </td>
294           <td>(</td>
295           <td class="paramtype"><a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *&nbsp;</td>
296           <td class="paramname"> <em>ctx</em>, </td>
297         </tr>
298         <tr>
299           <td class="paramkey"></td>
300           <td></td>
301           <td class="paramtype">const char *&nbsp;</td>
302           <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
303         </tr>
304         <tr>
305           <td></td>
306           <td>)</td>
307           <td></td><td></td><td width="100%"></td>
308         </tr>
309       </table>
310 </div>
311 <div class="memdoc">
312
313 <p>
314 Returns the current state of the specified plug-in. 
315 <p>
316 Returns <a class="el" href="group__cEnums.html#ggd517a8088e2ed89fda71251d9c7b325290eacd4f02fb7d65eaf68f7251a99689">CP_PLUGIN_UNINSTALLED</a> if the specified plug-in identifier is unknown.<p>
317 <dl compact><dt><b>Parameters:</b></dt><dd>
318   <table border="0" cellspacing="2" cellpadding="0">
319     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the plug-in context </td></tr>
320     <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>the plug-in identifier </td></tr>
321   </table>
322 </dl>
323 <dl class="return" compact><dt><b>Returns:</b></dt><dd>the current state of the plug-in </dd></dl>
324
325 </div>
326 </div><p>
327 <a class="anchor" name="ge9930a241e859e9eb07e36981ef7077a"></a><!-- doxytag: member="cpluff.h::cp_register_plistener" ref="ge9930a241e859e9eb07e36981ef7077a" args="(cp_context_t *ctx, cp_plugin_listener_func_t listener, void *user_data)" -->
328 <div class="memitem">
329 <div class="memproto">
330       <table class="memname">
331         <tr>
332           <td class="memname"><a class="el" href="group__cEnums.html#gd6a8106d281ffa4b1f43fe8e3effc7da">cp_status_t</a> cp_register_plistener           </td>
333           <td>(</td>
334           <td class="paramtype"><a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *&nbsp;</td>
335           <td class="paramname"> <em>ctx</em>, </td>
336         </tr>
337         <tr>
338           <td class="paramkey"></td>
339           <td></td>
340           <td class="paramtype"><a class="el" href="group__cTypedefsFuncs.html#g24fde3d7324169d8448700123aa97c7a">cp_plugin_listener_func_t</a>&nbsp;</td>
341           <td class="paramname"> <em>listener</em>, </td>
342         </tr>
343         <tr>
344           <td class="paramkey"></td>
345           <td></td>
346           <td class="paramtype">void *&nbsp;</td>
347           <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
348         </tr>
349         <tr>
350           <td></td>
351           <td>)</td>
352           <td></td><td></td><td width="100%"></td>
353         </tr>
354       </table>
355 </div>
356 <div class="memdoc">
357
358 <p>
359 Registers a plug-in listener with a plug-in context. 
360 <p>
361 The listener is called synchronously immediately after a plug-in state change. There can be several listeners registered with the same context. A plug-in listener can be unregistered using <a class="el" href="group__cFuncsPluginInfo.html#g2cd49b8752e8971b569ae3e39b41723e">cp_unregister_plistener</a> and it is automatically unregistered when the registering plug-in is stopped or when the context is destroyed.<p>
362 <dl compact><dt><b>Parameters:</b></dt><dd>
363   <table border="0" cellspacing="2" cellpadding="0">
364     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the plug-in context </td></tr>
365     <tr><td valign="top"></td><td valign="top"><em>listener</em>&nbsp;</td><td>the plug-in listener to be added </td></tr>
366     <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>user data pointer supplied to the listener </td></tr>
367   </table>
368 </dl>
369 <dl class="return" compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__cEnums.html#ggd6a8106d281ffa4b1f43fe8e3effc7da5ffbe0fe80af75e699e4b04909912f7a">CP_OK</a> (zero) on success or <a class="el" href="group__cEnums.html#ggd6a8106d281ffa4b1f43fe8e3effc7dac4e31e28c38ba325fa7169da1a233950">CP_ERR_RESOURCE</a> if out of resources </dd></dl>
370
371 </div>
372 </div><p>
373 <a class="anchor" name="g2cd49b8752e8971b569ae3e39b41723e"></a><!-- doxytag: member="cpluff.h::cp_unregister_plistener" ref="g2cd49b8752e8971b569ae3e39b41723e" args="(cp_context_t *ctx, cp_plugin_listener_func_t listener)" -->
374 <div class="memitem">
375 <div class="memproto">
376       <table class="memname">
377         <tr>
378           <td class="memname">void cp_unregister_plistener           </td>
379           <td>(</td>
380           <td class="paramtype"><a class="el" href="group__cTypedefsOpaque.html#gcb1aa0619dcefa746383c5e0833b62e7">cp_context_t</a> *&nbsp;</td>
381           <td class="paramname"> <em>ctx</em>, </td>
382         </tr>
383         <tr>
384           <td class="paramkey"></td>
385           <td></td>
386           <td class="paramtype"><a class="el" href="group__cTypedefsFuncs.html#g24fde3d7324169d8448700123aa97c7a">cp_plugin_listener_func_t</a>&nbsp;</td>
387           <td class="paramname"> <em>listener</em></td><td>&nbsp;</td>
388         </tr>
389         <tr>
390           <td></td>
391           <td>)</td>
392           <td></td><td></td><td width="100%"></td>
393         </tr>
394       </table>
395 </div>
396 <div class="memdoc">
397
398 <p>
399 Removes a plug-in listener from a plug-in context. 
400 <p>
401 Does nothing if the specified listener was not registered.<p>
402 <dl compact><dt><b>Parameters:</b></dt><dd>
403   <table border="0" cellspacing="2" cellpadding="0">
404     <tr><td valign="top"></td><td valign="top"><em>ctx</em>&nbsp;</td><td>the plug-in context </td></tr>
405     <tr><td valign="top"></td><td valign="top"><em>listener</em>&nbsp;</td><td>the plug-in listener to be removed </td></tr>
406   </table>
407 </dl>
408
409 </div>
410 </div><p>
411 <a class="anchor" name="g9868077c72df950607e2698153d593d1"></a><!-- doxytag: member="cpluff.h::cp_lookup_cfg_element" ref="g9868077c72df950607e2698153d593d1" args="(cp_cfg_element_t *base, const char *path)" -->
412 <div class="memitem">
413 <div class="memproto">
414       <table class="memname">
415         <tr>
416           <td class="memname"><a class="el" href="structcp__cfg__element__t.html">cp_cfg_element_t</a>* cp_lookup_cfg_element           </td>
417           <td>(</td>
418           <td class="paramtype"><a class="el" href="structcp__cfg__element__t.html">cp_cfg_element_t</a> *&nbsp;</td>
419           <td class="paramname"> <em>base</em>, </td>
420         </tr>
421         <tr>
422           <td class="paramkey"></td>
423           <td></td>
424           <td class="paramtype">const char *&nbsp;</td>
425           <td class="paramname"> <em>path</em></td><td>&nbsp;</td>
426         </tr>
427         <tr>
428           <td></td>
429           <td>)</td>
430           <td></td><td></td><td width="100%"></td>
431         </tr>
432       </table>
433 </div>
434 <div class="memdoc">
435
436 <p>
437 Traverses a configuration element tree and returns the specified element. 
438 <p>
439 The target element is specified by a base element and a relative path from the base element to the target element. The path includes element names separated by slash '/'. Two dots ".." can be used to designate a parent element. Returns NULL if the specified element does not exist. If there are several subelements with the same name, this function chooses the first one when traversing the tree.<p>
440 <dl compact><dt><b>Parameters:</b></dt><dd>
441   <table border="0" cellspacing="2" cellpadding="0">
442     <tr><td valign="top"></td><td valign="top"><em>base</em>&nbsp;</td><td>the base configuration element </td></tr>
443     <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>the path to the target element </td></tr>
444   </table>
445 </dl>
446 <dl class="return" compact><dt><b>Returns:</b></dt><dd>the target element or NULL if nonexisting </dd></dl>
447
448 </div>
449 </div><p>
450 <a class="anchor" name="g13f5121ab21951d59d3c6b985ed6adcd"></a><!-- doxytag: member="cpluff.h::cp_lookup_cfg_value" ref="g13f5121ab21951d59d3c6b985ed6adcd" args="(cp_cfg_element_t *base, const char *path)" -->
451 <div class="memitem">
452 <div class="memproto">
453       <table class="memname">
454         <tr>
455           <td class="memname">char* cp_lookup_cfg_value           </td>
456           <td>(</td>
457           <td class="paramtype"><a class="el" href="structcp__cfg__element__t.html">cp_cfg_element_t</a> *&nbsp;</td>
458           <td class="paramname"> <em>base</em>, </td>
459         </tr>
460         <tr>
461           <td class="paramkey"></td>
462           <td></td>
463           <td class="paramtype">const char *&nbsp;</td>
464           <td class="paramname"> <em>path</em></td><td>&nbsp;</td>
465         </tr>
466         <tr>
467           <td></td>
468           <td>)</td>
469           <td></td><td></td><td width="100%"></td>
470         </tr>
471       </table>
472 </div>
473 <div class="memdoc">
474
475 <p>
476 Traverses a configuration element tree and returns the value of the specified element or attribute. 
477 <p>
478 The target element or attribute is specified by a base element and a relative path from the base element to the target element or attributes. The path includes element names separated by slash '/'. Two dots ".." can be used to designate a parent element. The path may end with '@' followed by an attribute name to select an attribute. Returns NULL if the specified element or attribute does not exist or does not have a value. If there are several subelements with the same name, this function chooses the first one when traversing the tree.<p>
479 <dl compact><dt><b>Parameters:</b></dt><dd>
480   <table border="0" cellspacing="2" cellpadding="0">
481     <tr><td valign="top"></td><td valign="top"><em>base</em>&nbsp;</td><td>the base configuration element </td></tr>
482     <tr><td valign="top"></td><td valign="top"><em>path</em>&nbsp;</td><td>the path to the target element </td></tr>
483   </table>
484 </dl>
485 <dl class="return" compact><dt><b>Returns:</b></dt><dd>the value of the target element or attribute or NULL </dd></dl>
486
487 </div>
488 </div><p>
489 <hr size="1">
490 <p class="footer">
491 <a href="http://www.c-pluff.org/">C-Pluff</a>, a plug-in framework for C<br>
492 Copyright 2007 <a href="http://www.jlehtinen.net/">Johannes Lehtinen</a>
493 </p>
494 <p class="generated-by">
495 Generated on Fri Apr 6 15:40:55 2007 for C-Pluff C API by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1
496 </p>
497 </body>
498 </html>