blob: 5b03880df3cf8da6d71d89571145801806ad4c7a [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.1) on Tue Jun 15 21:55:05 PDT 2021 -->
<title>RemoteServiceTracker (Eclipse Communication Framework (ECF) 3.14.22 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="dc.created" content="2021-06-15">
<meta name="description" content="declaration: package: org.eclipse.ecf.remoteservice.util.tracker, class: RemoteServiceTracker">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RemoteServiceTracker.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!-- -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.ecf.remoteservice.util.tracker</a></div>
<h1 title="Class RemoteServiceTracker" class="title">Class RemoteServiceTracker</h1>
</div>
<div class="contentContainer">
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a>
<div class="inheritance">org.eclipse.ecf.remoteservice.util.tracker.RemoteServiceTracker</div>
</div>
<section class="description">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a></code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">RemoteServiceTracker</span>
extends <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a></pre>
<div class="block">Remote service tracker. Implementation of ServiceTracker
for the ECF remoteservices API. The getRemoteService() method
returns instances of <a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice"><code>IRemoteService</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</section>
<section class="summary">
<ul class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<li class="blockList">
<section class="fieldSummary"><a id="field.summary">
<!-- -->
</a>
<h2>Field Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../IRemoteServiceContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceContainerAdapter</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containerAdapter">containerAdapter</a></span></code></th>
<td class="colLast">
<div class="block">IRemoteServiceContainerAdapter containerAdapter against which
this <code>RemoteServiceTracker</code> is tracking.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containerIDs">containerIDs</a></span></code></th>
<td class="colLast">
<div class="block">Container IDs that provide the context for tracking.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../IRemoteFilter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteFilter</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#filter">filter</a></span></code></th>
<td class="colLast">
<div class="block">Filter specifying search criteria for the services to track.</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li class="blockList">
<section class="constructorSummary"><a id="constructor.summary">
<!-- -->
</a>
<h2>Constructor Summary</h2>
<div class="memberSummary">
<table>
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<thead>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter,org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,org.eclipse.ecf.remoteservice.util.tracker.IRemoteServiceTrackerCustomizer)">RemoteServiceTracker</a></span>&#8203;(<a href="../../IRemoteServiceContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceContainerAdapter</a>&nbsp;containerAdapter,
<a href="../../../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;containerIDs,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;clazz,
<a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a>&nbsp;customizer)</code></th>
<td class="colLast">
<div class="block">Create a <code>RemoteServiceTracker</code> object on the specified class
name.</div>
</td>
</tr>
<tr class="rowColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter,org.eclipse.ecf.core.identity.ID%5B%5D,org.eclipse.ecf.remoteservice.IRemoteServiceReference,org.eclipse.ecf.remoteservice.util.tracker.IRemoteServiceTrackerCustomizer)">RemoteServiceTracker</a></span>&#8203;(<a href="../../IRemoteServiceContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceContainerAdapter</a>&nbsp;containerAdapter,
<a href="../../../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;containerIDs,
<a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference,
<a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a>&nbsp;customizer)</code></th>
<td class="colLast">
<div class="block">Create a <code>RemoteServiceTracker</code> on the specified
<code>IRemoteServiceReference</code>.</div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!-- -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t4" class="tableTab" onclick="show(8);">Concrete Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addingService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">addingService</a></span>&#8203;(<a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference)</code></th>
<td class="colLast">
<div class="block">Default implementation of the
<code>IRemoteServiceTrackerCustomizer.addingService</code> method.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#close()">close</a></span>()</code></th>
<td class="colLast">
<div class="block">Close this <code>RemoteServiceTracker</code>.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteService()">getRemoteService</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a service object for one of the services being tracked by this
<code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">getRemoteService</a></span>&#8203;(<a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference)</code></th>
<td class="colLast">
<div class="block">Returns the service object for the specified
<code>ServiceReference</code> object if the referenced service is being
tracked by this <code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteServiceReference()">getRemoteServiceReference</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a <code>ServiceReference</code> object for one of the services
being tracked by this <code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteServiceReferences()">getRemoteServiceReferences</a></span>()</code></th>
<td class="colLast">
<div class="block">Return an array of <code>ServiceReference</code> objects for all
services being tracked by this <code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteServices()">getRemoteServices</a></span>()</code></th>
<td class="colLast">
<div class="block">Return an array of service objects for all services being tracked by this
<code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTrackingCount()">getTrackingCount</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the tracking count for this <code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#modifiedService(org.eclipse.ecf.remoteservice.IRemoteServiceReference,org.eclipse.ecf.remoteservice.IRemoteService)">modifiedService</a></span>&#8203;(<a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference,
<a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a>&nbsp;remoteService)</code></th>
<td class="colLast">
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.modifiedService</code> method.</div>
</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#open()">open</a></span>()</code></th>
<td class="colLast">
<div class="block">Open this <code>RemoteServiceTracker</code> object and begin tracking
services.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">remove</a></span>&#8203;(<a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference)</code></th>
<td class="colLast">
<div class="block">Remove a service from this <code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removedService(org.eclipse.ecf.remoteservice.IRemoteServiceReference,org.eclipse.ecf.remoteservice.IRemoteService)">removedService</a></span>&#8203;(<a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference,
<a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a>&nbsp;remoteService)</code></th>
<td class="colLast">
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.removedService</code> method.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the number of services being tracked by this
<code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#waitForRemoteService(long)">waitForRemoteService</a></span>&#8203;(long&nbsp;timeout)</code></th>
<td class="colLast">
<div class="block">Wait for at least one service to be tracked by this
<code>RemoteServiceTracker</code> object.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<li class="blockList">
<section class="fieldDetails"><a id="field.detail">
<!-- -->
</a>
<h2>Field Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="containerAdapter">containerAdapter</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../../IRemoteServiceContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceContainerAdapter</a></span>&nbsp;<span class="memberName">containerAdapter</span></div>
<div class="block">IRemoteServiceContainerAdapter containerAdapter against which
this <code>RemoteServiceTracker</code> is tracking.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="containerIDs">containerIDs</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../../../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]</span>&nbsp;<span class="memberName">containerIDs</span></div>
<div class="block">Container IDs that provide the context for tracking.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="filter">filter</a></h3>
<div class="memberSignature"><span class="modifiers">protected final</span>&nbsp;<span class="returnType"><a href="../../IRemoteFilter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteFilter</a></span>&nbsp;<span class="memberName">filter</span></div>
<div class="block">Filter specifying search criteria for the services to track.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li class="blockList">
<section class="constructorDetails"><a id="constructor.detail">
<!-- -->
</a>
<h2>Constructor Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter,org.eclipse.ecf.core.identity.ID[],org.eclipse.ecf.remoteservice.IRemoteServiceReference,org.eclipse.ecf.remoteservice.util.tracker.IRemoteServiceTrackerCustomizer)">RemoteServiceTracker</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="memberName">RemoteServiceTracker</span>&#8203;(<span class="arguments"><a href="../../IRemoteServiceContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceContainerAdapter</a>&nbsp;containerAdapter,
<a href="../../../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;containerIDs,
<a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference,
<a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a>&nbsp;customizer)</span></div>
<div class="block">Create a <code>RemoteServiceTracker</code> on the specified
<code>IRemoteServiceReference</code>.
<p>
The remote service referenced by the specified <code>IRemoteServiceReference</code>
object will be tracked by this <code>RemoteServiceTracker</code> object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>containerAdapter</code> - <code>IRemoteServiceContainerAdapter</code> against which the
tracking is done.</dd>
<dd><code>containerIDs</code> - container IDs</dd>
<dd><code>reference</code> - <code>IRemoteServiceReference</code> for the remote service
to be tracked.</dd>
<dd><code>customizer</code> - The customizer object to call when services are added,
modified, or removed in this <code>RemoteServiceTracker</code> object.
If customizer is <code>null</code>, then this
<code>RemoteServiceTracker</code> object will be used as the
<code>ServiceTrackerCustomizer</code> object and the
<code>RemoteServiceTracker</code> object will call the
<code>ServiceTrackerCustomizer</code> methods on itself.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="&lt;init&gt;(org.eclipse.ecf.remoteservice.IRemoteServiceContainerAdapter,org.eclipse.ecf.core.identity.ID[],java.lang.String,org.eclipse.ecf.remoteservice.util.tracker.IRemoteServiceTrackerCustomizer)">RemoteServiceTracker</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="memberName">RemoteServiceTracker</span>&#8203;(<span class="arguments"><a href="../../IRemoteServiceContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceContainerAdapter</a>&nbsp;containerAdapter,
<a href="../../../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;containerIDs,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;clazz,
<a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a>&nbsp;customizer)</span></div>
<div class="block">Create a <code>RemoteServiceTracker</code> object on the specified class
name.
<p>
Services registered under the specified class name will be tracked by
this <code>RemoteServiceTracker</code> object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>containerAdapter</code> - <code>BundleContext</code> object against which the
tracking is done.</dd>
<dd><code>containerIDs</code> - container ids</dd>
<dd><code>clazz</code> - Class name of the services to be tracked.</dd>
<dd><code>customizer</code> - The customizer object to call when services are added,
modified, or removed in this <code>RemoteServiceTracker</code> object.
If customizer is <code>null</code>, then this
<code>RemoteServiceTracker</code> object will be used as the
<code>ServiceTrackerCustomizer</code> object and the
<code>RemoteServiceTracker</code> object will call the
<code>ServiceTrackerCustomizer</code> methods on itself.</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!-- -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="open()">open</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">open</span>()</div>
<div class="block">Open this <code>RemoteServiceTracker</code> object and begin tracking
services.
<p>
Services which match the search criteria specified when this
<code>RemoteServiceTracker</code> object was created are now tracked by this
<code>RemoteServiceTracker</code> object.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalStateException</a></code> - if the <code>BundleContext</code>
object with which this <code>RemoteServiceTracker</code> object was
created is no longer valid.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.3</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="close()">close</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">close</span>()</div>
<div class="block">Close this <code>RemoteServiceTracker</code>.
<p>
This method should be called when this <code>RemoteServiceTracker</code>
object should end the tracking of services.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="addingService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">addingService</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a></span>&nbsp;<span class="memberName">addingService</span>&#8203;(<span class="arguments"><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference)</span></div>
<div class="block">Default implementation of the
<code>IRemoteServiceTrackerCustomizer.addingService</code> method.
<p>
This method is only called when this <code>RemoteServiceTracker</code> object
has been constructed with a <code>null IRemoteServiceTrackerCustomizer</code>
argument.
The default implementation returns the result of calling
<code>getService</code>, on the <code>BundleContext</code> object
with which this <code>RemoteServiceTracker</code> object was created, passing
the specified <code>ServiceReference</code> object.
<p>
This method can be overridden in a subclass to customize the service
object to be tracked for the service being added. In that case, take care
not to rely on the default implementation of removedService that will
unget the service.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceTrackerCustomizer.html#addingService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">addingService</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - Reference to service being added to this
<code>RemoteServiceTracker</code> object.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The IRemoteService object to be tracked for the service added to this
<code>RemoteServiceTracker</code> object.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker"><code>IRemoteServiceTrackerCustomizer</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="modifiedService(org.eclipse.ecf.remoteservice.IRemoteServiceReference,org.eclipse.ecf.remoteservice.IRemoteService)">modifiedService</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">modifiedService</span>&#8203;(<span class="arguments"><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference,
<a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a>&nbsp;remoteService)</span></div>
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.modifiedService</code> method.
<p>
This method is only called when this <code>RemoteServiceTracker</code> object
has been constructed with a <code>null ServiceTrackerCustomizer</code>
argument.
The default implementation does nothing.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceTrackerCustomizer.html#modifiedService(org.eclipse.ecf.remoteservice.IRemoteServiceReference,org.eclipse.ecf.remoteservice.IRemoteService)">modifiedService</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - Reference to modified service.</dd>
<dd><code>remoteService</code> - The service object for the modified service.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker"><code>IRemoteServiceTrackerCustomizer</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="removedService(org.eclipse.ecf.remoteservice.IRemoteServiceReference,org.eclipse.ecf.remoteservice.IRemoteService)">removedService</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">removedService</span>&#8203;(<span class="arguments"><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference,
<a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a>&nbsp;remoteService)</span></div>
<div class="block">Default implementation of the
<code>ServiceTrackerCustomizer.removedService</code> method.
<p>
This method is only called when this <code>RemoteServiceTracker</code> object
has been constructed with a <code>null ServiceTrackerCustomizer</code>
argument.
The default implementation calls <code>ungetService</code>, on the
<code>BundleContext</code> object with which this
<code>RemoteServiceTracker</code> object was created, passing the specified
<code>ServiceReference</code> object.
<p>
This method can be overridden in a subclass. If the default
implementation of <code>addingService</code> method was used, this
method must unget the service.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceTrackerCustomizer.html#removedService(org.eclipse.ecf.remoteservice.IRemoteServiceReference,org.eclipse.ecf.remoteservice.IRemoteService)">removedService</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker">IRemoteServiceTrackerCustomizer</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - Reference to removed service.</dd>
<dd><code>remoteService</code> - The service object for the removed service.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="IRemoteServiceTrackerCustomizer.html" title="interface in org.eclipse.ecf.remoteservice.util.tracker"><code>IRemoteServiceTrackerCustomizer</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="waitForRemoteService(long)">waitForRemoteService</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a></span>&nbsp;<span class="memberName">waitForRemoteService</span>&#8203;(<span class="arguments">long&nbsp;timeout)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang" class="externalLink">InterruptedException</a></span></div>
<div class="block">Wait for at least one service to be tracked by this
<code>RemoteServiceTracker</code> object.
<p>
It is strongly recommended that <code>waitForService</code> is not used
during the calling of the <code>BundleActivator</code> methods.
<code>BundleActivator</code> methods are expected to complete in a
short period of time.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - time interval in milliseconds to wait. If zero, the method
will wait indefinitely.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the result of <code>getService()</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang" class="externalLink">InterruptedException</a></code> - If another thread has interrupted the
current thread.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang" class="externalLink">IllegalArgumentException</a></code> - If the value of timeout is negative.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServiceReferences()">getRemoteServiceReferences</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>[]</span>&nbsp;<span class="memberName">getRemoteServiceReferences</span>()</div>
<div class="block">Return an array of <code>ServiceReference</code> objects for all
services being tracked by this <code>RemoteServiceTracker</code> object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of <code>ServiceReference</code> objects or
<code>null</code> if no service are being tracked.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServiceReference()">getRemoteServiceReference</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a></span>&nbsp;<span class="memberName">getRemoteServiceReference</span>()</div>
<div class="block">Returns a <code>ServiceReference</code> object for one of the services
being tracked by this <code>RemoteServiceTracker</code> object.
<p>
If multiple services are being tracked, the service with the highest
ranking (as specified in its <code>service.ranking</code> property) is
returned.
<p>
If there is a tie in ranking, the service with the lowest service ID (as
specified in its <code>service.id</code> property); that is, the
service that was registered first is returned.
<p>
This is the same algorithm used by
<code>BundleContext.getServiceReference</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>ServiceReference</code> object or <code>null</code> if
no service is being tracked.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">getRemoteService</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a></span>&nbsp;<span class="memberName">getRemoteService</span>&#8203;(<span class="arguments"><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference)</span></div>
<div class="block">Returns the service object for the specified
<code>ServiceReference</code> object if the referenced service is being
tracked by this <code>RemoteServiceTracker</code> object.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - Reference to the desired service.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Service object or <code>null</code> if the service referenced
by the specified <code>ServiceReference</code> object is not
being tracked.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServices()">getRemoteServices</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a>[]</span>&nbsp;<span class="memberName">getRemoteServices</span>()</div>
<div class="block">Return an array of service objects for all services being tracked by this
<code>RemoteServiceTracker</code> object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of service objects or <code>null</code> if no service are
being tracked.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteService()">getRemoteService</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../../IRemoteService.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteService</a></span>&nbsp;<span class="memberName">getRemoteService</span>()</div>
<div class="block">Returns a service object for one of the services being tracked by this
<code>RemoteServiceTracker</code> object.
<p>
If any services are being tracked, this method returns the result of
calling <code>getService(getServiceReference())</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Service object or <code>null</code> if no service is being
tracked.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="remove(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">remove</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">remove</span>&#8203;(<span class="arguments"><a href="../../IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>&nbsp;reference)</span></div>
<div class="block">Remove a service from this <code>RemoteServiceTracker</code> object.
The specified service will be removed from this
<code>RemoteServiceTracker</code> object. If the specified service was being
tracked then the <code>ServiceTrackerCustomizer.removedService</code>
method will be called for that service.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - Reference to the service to be removed.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="size()">size</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">size</span>()</div>
<div class="block">Return the number of services being tracked by this
<code>RemoteServiceTracker</code> object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number of services being tracked.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getTrackingCount()">getTrackingCount</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">getTrackingCount</span>()</div>
<div class="block">Returns the tracking count for this <code>RemoteServiceTracker</code> object.
The tracking count is initialized to 0 when this
<code>RemoteServiceTracker</code> object is opened. Every time a service is
added, modified or removed from this <code>RemoteServiceTracker</code> object
the tracking count is incremented.
<p>
The tracking count can be used to determine if this
<code>RemoteServiceTracker</code> object has added, modified or removed a
service by comparing a tracking count value previously collected with the
current tracking count value. If the value has not changed, then no
service has been added, modified or removed from this
<code>RemoteServiceTracker</code> object since the previous tracking count
was collected.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The tracking count for this <code>RemoteServiceTracker</code> object
or -1 if this <code>RemoteServiceTracker</code> object is not open.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.2</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RemoteServiceTracker.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2020 <a href="https://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>