blob: bcd17a23b1fc35fcf1ee2748ab7990c53d1de787 [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_tracking_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__tracking__options-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">celix_service_tracking_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_tracking_options:</div>
<div class="dyncontent">
<div class="center"><img src="structcelix__service__tracking__options__coll__graph.png" border="0" usemap="#celix__service__tracking__options_coll__map" alt="Collaboration graph"/></div>
<map name="celix__service__tracking__options_coll__map" id="celix__service__tracking__options_coll__map">
<area shape="rect" title=" " alt="" coords="5,109,156,151"/>
<area shape="rect" href="structcelix__service__filter__options.html" title=" " alt="" coords="15,5,146,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:a9272f1870b544b28329545b84f3425c2"><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__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:a9272f1870b544b28329545b84f3425c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2fcaf1b7274379695cc9a4bb1c719d86"><td class="memItemLeft" align="right" valign="top">void *callbackHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a2fcaf1b7274379695cc9a4bb1c719d86">OPTS_INIT</a></td></tr>
<tr class="separator:a2fcaf1b7274379695cc9a4bb1c719d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9e8b9cae7ea59ddb796a6bc904f57da"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#aa9e8b9cae7ea59ddb796a6bc904f57da">set</a> )(void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:aa9e8b9cae7ea59ddb796a6bc904f57da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a256f8db1eecb89a8b71e4ef03ab11172"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a256f8db1eecb89a8b71e4ef03ab11172">setWithProperties</a> )(void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:a256f8db1eecb89a8b71e4ef03ab11172"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12a988b8f1f3bd3a2e61c65d82f14d59"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a12a988b8f1f3bd3a2e61c65d82f14d59">setWithOwner</a> )(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:a12a988b8f1f3bd3a2e61c65d82f14d59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe7fa7d7fce1c581dff6e7986e958815"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#afe7fa7d7fce1c581dff6e7986e958815">add</a> )(void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:afe7fa7d7fce1c581dff6e7986e958815"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f80c99b050b1e49663cab329848364c"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a4f80c99b050b1e49663cab329848364c">addWithProperties</a> )(void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:a4f80c99b050b1e49663cab329848364c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a787fd0f4f6719fefea2ae70fe6a1a5e6"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a787fd0f4f6719fefea2ae70fe6a1a5e6">addWithOwner</a> )(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:a787fd0f4f6719fefea2ae70fe6a1a5e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8445caaae53d71a47c0289d2e3e5f882"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#a8445caaae53d71a47c0289d2e3e5f882">remove</a> )(void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:a8445caaae53d71a47c0289d2e3e5f882"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af75c423757dcd16bf90d57a5726ac98a"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#af75c423757dcd16bf90d57a5726ac98a">removeWithProperties</a> )(void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:af75c423757dcd16bf90d57a5726ac98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf6dbcde52efbed145933e8a28f3f2e1"><td class="memItemLeft" align="right" valign="top">void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcelix__service__tracking__options.html#acf6dbcde52efbed145933e8a28f3f2e1">removeWithOwner</a> )(void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td></tr>
<tr class="separator:acf6dbcde52efbed145933e8a28f3f2e1"><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 Tracker Options used to fine tune which services to track and the callback to be used for the tracked services. </p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="afe7fa7d7fce1c581dff6e7986e958815"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe7fa7d7fce1c581dff6e7986e958815">&#9670;&nbsp;</a></span>add</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::add) (void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional add callback will be called for every current and future service found conform the provided service filter options as long as the tracker is active. </p><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 a service matching the provided service filter options. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a787fd0f4f6719fefea2ae70fe6a1a5e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a787fd0f4f6719fefea2ae70fe6a1a5e6">&#9670;&nbsp;</a></span>addWithOwner</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::addWithOwner) (void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional addWithOwner callback is handled as the add 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="a4f80c99b050b1e49663cab329848364c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f80c99b050b1e49663cab329848364c">&#9670;&nbsp;</a></span>addWithProperties</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::addWithProperties) (void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional addWithProperties callback is handled as the add callback, but with the addition that the service properties will also be provided to the callback. </p>
</div>
</div>
<a id="a9272f1870b544b28329545b84f3425c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9272f1870b544b28329545b84f3425c2">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[1/2]</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_tracking_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="a2fcaf1b7274379695cc9a4bb1c719d86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fcaf1b7274379695cc9a4bb1c719d86">&#9670;&nbsp;</a></span>OPTS_INIT <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* callbackHandle celix_service_tracking_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="a8445caaae53d71a47c0289d2e3e5f882"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8445caaae53d71a47c0289d2e3e5f882">&#9670;&nbsp;</a></span>remove</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::remove) (void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional remove callback will be called for every service conform the provided service filter options that is unregistered. When the remove call is finished the removed services should be considered invalid. This means that the callback provider should ensure that the removed service is not in use or going to be used after the remove callback is finished.</p>
<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 a service matching the provided service filter options. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="acf6dbcde52efbed145933e8a28f3f2e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf6dbcde52efbed145933e8a28f3f2e1">&#9670;&nbsp;</a></span>removeWithOwner</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::removeWithOwner) (void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional removeWithOwner callback is handled as the remove 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="af75c423757dcd16bf90d57a5726ac98a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af75c423757dcd16bf90d57a5726ac98a">&#9670;&nbsp;</a></span>removeWithProperties</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::removeWithProperties) (void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional removeWithProperties callback is handled as the remove callback, but with the addition that the service properties will also be provided to the callback. </p>
</div>
</div>
<a id="aa9e8b9cae7ea59ddb796a6bc904f57da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9e8b9cae7ea59ddb796a6bc904f57da">&#9670;&nbsp;</a></span>set</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::set) (void *handle, void *svc) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional set callback will be called when a new highest ranking service is available conform the provided service filter options. </p><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="a12a988b8f1f3bd3a2e61c65d82f14d59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12a988b8f1f3bd3a2e61c65d82f14d59">&#9670;&nbsp;</a></span>setWithOwner</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::setWithOwner) (void *handle, void *svc, const celix_properties_t *props, const celix_bundle_t *svcOwner) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional setWithOwner callback is handled as the set 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="a256f8db1eecb89a8b71e4ef03ab11172"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a256f8db1eecb89a8b71e4ef03ab11172">&#9670;&nbsp;</a></span>setWithProperties</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void(* celix_service_tracking_options::setWithProperties) (void *handle, void *svc, const celix_properties_t *props) <a class="el" href="structcelix__service__tracking__options.html#a9272f1870b544b28329545b84f3425c2">OPTS_INIT</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The optional setWithProperties callback is handled as the set 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>