blob: 0d58cd8f1b19974499ab1fb71c46dc39d4ee6b5b [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.18"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Celix: celix_service_use_options Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Celix
&#160;<span id="projectnumber">2.2.1</span>
</div>
<div id="projectbrief">An implementation of the OSGi specification adapted to C and C++</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structcelix__service__use__options-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">celix_service_use_options Struct Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for celix_service_use_options:</div>
<div class="dyncontent">
<div class="center"><img src="structcelix__service__use__options__coll__graph.png" border="0" usemap="#celix__service__use__options_coll__map" alt="Collaboration graph"/></div>
<map name="celix__service__use__options_coll__map" id="celix__service__use__options_coll__map">
<area shape="rect" title=" " alt="" coords="5,109,180,136"/>
<area shape="rect" href="structcelix__service__filter__options.html" title=" " alt="" coords="27,5,158,47"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:addad49a12179fff8b2dbf5313d70952f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> filter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td></tr>
<tr class="separator:addad49a12179fff8b2dbf5313d70952f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae24e3e35d7d92d5b41d58b53506bcca0"><td class="memItemLeft" align="right" valign="top">double waitTimeoutInSeconds&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#ae24e3e35d7d92d5b41d58b53506bcca0">OPTS_INIT</a></td></tr>
<tr class="separator:ae24e3e35d7d92d5b41d58b53506bcca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31a9834b87a5c2c3ed6b8532cd85c653"><td class="memItemLeft" align="right" valign="top">void *callbackHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#a31a9834b87a5c2c3ed6b8532cd85c653">OPTS_INIT</a></td></tr>
<tr class="separator:a31a9834b87a5c2c3ed6b8532cd85c653"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7efa464a614a3faf6970a4917c596a7"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#ac7efa464a614a3faf6970a4917c596a7">use</a> )(void *handle, void *svc) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td></tr>
<tr class="separator:ac7efa464a614a3faf6970a4917c596a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8192eb7aa470178f78ea8c09c4574867"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#a8192eb7aa470178f78ea8c09c4574867">useWithProperties</a> )(void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td></tr>
<tr class="separator:a8192eb7aa470178f78ea8c09c4574867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ba3552bfc25500084bfaf2dbb0f46c5"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__use__options.html#a2ba3552bfc25500084bfaf2dbb0f46c5">useWithOwner</a> )(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td></tr>
<tr class="separator:a2ba3552bfc25500084bfaf2dbb0f46c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Service Use Options used to fine tune which services to use and which callbacks to use. </p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="addad49a12179fff8b2dbf5313d70952f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addad49a12179fff8b2dbf5313d70952f">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="celix__bundle__context_8h.html#a7eab80d54386fb32b91dd414846c2d45">celix_service_filter_options_t</a> filter celix_service_use_options::OPTS_INIT</td>
</tr>
</table>
</div><div class="memdoc">
<p>The service filter options, used to setup the filter for the service to track. </p>
</div>
</div>
<a id="ae24e3e35d7d92d5b41d58b53506bcca0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae24e3e35d7d92d5b41d58b53506bcca0">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">double waitTimeoutInSeconds celix_service_use_options::OPTS_INIT</td>
</tr>
</table>
</div><div class="memdoc">
<p>An optional timeout (in seconds), if &gt; 0 the use service call will block untill the timeout is expired or when at least one service is found. Default (0) </p>
</div>
</div>
<a id="a31a9834b87a5c2c3ed6b8532cd85c653"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31a9834b87a5c2c3ed6b8532cd85c653">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* callbackHandle celix_service_use_options::OPTS_INIT</td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional callback pointer used in all the provided callback function (set, add, remove, setWithProperties, etc). </p>
</div>
</div>
<a id="ac7efa464a614a3faf6970a4917c596a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac7efa464a614a3faf6970a4917c596a7">&#9670;&nbsp;</a></span>use</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_use_options::use) (void *handle, void *svc) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional use callback will be called when for every services found conform the service filter options</p><ul>
<li>in case of findServices - or only for the highest ranking service found - in case of findService -.</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">handle</td><td>The callbackHandle pointer as provided in the service tracker options. </td></tr>
<tr><td class="paramname">svc</td><td>The service pointer of the highest ranking service. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a2ba3552bfc25500084bfaf2dbb0f46c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ba3552bfc25500084bfaf2dbb0f46c5">&#9670;&nbsp;</a></span>useWithOwner</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_use_options::useWithOwner) (void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional useWithOwner callback is handled as the yse callback, but with the addition that the service properties and the bundle owning the service will also be provided to the callback. </p>
</div>
</div>
<a id="a8192eb7aa470178f78ea8c09c4574867"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8192eb7aa470178f78ea8c09c4574867">&#9670;&nbsp;</a></span>useWithProperties</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_use_options::useWithProperties) (void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__use__options.html#addad49a12179fff8b2dbf5313d70952f">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional useWithProperties callback is handled as the use callback, but with the addition that the service properties will also be provided to the callback. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>libs/framework/include/<a class="el" href="celix__bundle__context_8h_source.html">celix_bundle_context.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
</html>