<!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>
