<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.1) on Tue Jun 15 21:55:05 PDT 2021 -->
<title>IRemoteServiceConsumer (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, interface: IRemoteServiceConsumer">
<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":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/IRemoteServiceConsumer.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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</a></div>
<h1 title="Interface IRemoteServiceConsumer" class="title">Interface IRemoteServiceConsumer</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code>org.eclipse.core.runtime.IAdaptable</code></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="IOSGiRemoteServiceContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice">IOSGiRemoteServiceContainerAdapter</a></code>, <code><a href="client/IRemoteServiceClientContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice.client">IRemoteServiceClientContainerAdapter</a></code>, <code><a href="IRemoteServiceContainerAdapter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceContainerAdapter</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="client/AbstractClientContainer.html" title="class in org.eclipse.ecf.remoteservice.client">AbstractClientContainer</a></code>, <code><a href="rest/client/AbstractRestClientContainer.html" title="class in org.eclipse.ecf.remoteservice.rest.client">AbstractRestClientContainer</a></code>, <code><a href="client/AbstractRSAClientContainer.html" title="class in org.eclipse.ecf.remoteservice.client">AbstractRSAClientContainer</a></code>, <code><a href="../provider/remoteservice/generic/RegistrySharedObject.html" title="class in org.eclipse.ecf.provider.remoteservice.generic">RegistrySharedObject</a></code>, <code><a href="../provider/remoteservice/generic/RemoteServiceContainer.html" title="class in org.eclipse.ecf.provider.remoteservice.generic">RemoteServiceContainer</a></code>, <code><a href="RemoteServiceContainerAdapterImpl.html" title="class in org.eclipse.ecf.remoteservice">RemoteServiceContainerAdapterImpl</a></code>, <code><a href="rest/client/RestClientContainer.html" title="class in org.eclipse.ecf.remoteservice.rest.client">RestClientContainer</a></code>, <code><a href="RSARemoteServiceContainerAdapter.html" title="class in org.eclipse.ecf.remoteservice">RSARemoteServiceContainerAdapter</a></code>, <code><a href="servlet/ServletServerContainer.html" title="class in org.eclipse.ecf.remoteservice.servlet">ServletServerContainer</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">IRemoteServiceConsumer</span>
extends org.eclipse.core.runtime.IAdaptable</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0</dd>
</dl>
</section>
<section class="summary">
<ul class="blockList">
<!-- ========== 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="t3" class="tableTab" onclick="show(4);">Abstract 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>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addRemoteServiceListener(org.eclipse.ecf.remoteservice.IRemoteServiceListener)">addRemoteServiceListener</a></span>&#8203;(<a href="IRemoteServiceListener.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Add listener for remote service registration/unregistration for this
 container</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>org.eclipse.equinox.concurrent.future.IFuture</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></span>&#8203;(<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;idFilter,
<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="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;filter)</code></th>
<td class="colLast">
<div class="block">Asynchronously returns an array of <code>IRemoteServiceReference</code> objects.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>org.eclipse.equinox.concurrent.future.IFuture</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></span>&#8203;(<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;target,
<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="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;filter)</code></th>
<td class="colLast">
<div class="block">Asynchronously returns an array of <code>IRemoteServiceReference</code> objects.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>org.eclipse.equinox.concurrent.future.IFuture</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></span>&#8203;(<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;target,
<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;idFilter,
<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="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;filter)</code></th>
<td class="colLast">
<div class="block">Asynchronously returns an array of <code>IRemoteServiceReference</code> objects.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><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="#createRemoteFilter(java.lang.String)">createRemoteFilter</a></span>&#8203;(<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;filter)</code></th>
<td class="colLast">
<div class="block">Creates a <code>IRemoteFilter</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="#getAllRemoteServiceReferences(java.lang.String,java.lang.String)">getAllRemoteServiceReferences</a></span>&#8203;(<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="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;filter)</code></th>
<td class="colLast">
<div class="block">
 Returns an array of <code>IRemoteServiceReference</code> objects.</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="#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">Get remote service for given IRemoteServiceReference.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code><a href="IRemoteServiceID.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceID</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteServiceID(org.eclipse.ecf.core.identity.ID,long)">getRemoteServiceID</a></span>&#8203;(<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;containerID,
long&nbsp;containerRelativeID)</code></th>
<td class="colLast">
<div class="block">Get a remote service ID from a containerID and a containerRelative long value.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code><a href="../core/identity/Namespace.html" title="class in org.eclipse.ecf.core.identity">Namespace</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getRemoteServiceNamespace()">getRemoteServiceNamespace</a></span>()</code></th>
<td class="colLast">
<div class="block">Get namespace to use for this remote service provider.</div>
</td>
</tr>
<tr class="rowColor" id="i9">
<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(org.eclipse.ecf.remoteservice.IRemoteServiceID)">getRemoteServiceReference</a></span>&#8203;(<a href="IRemoteServiceID.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceID</a>&nbsp;serviceID)</code></th>
<td class="colLast">
<div class="block">Get the remote service reference known to this container for the given IRemoteServiceID.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<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(org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)">getRemoteServiceReferences</a></span>&#8203;(<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;idFilter,
<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="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;filter)</code></th>
<td class="colLast">
<div class="block">Returns an array of <code>IRemoteServiceReference</code> objects.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<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(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)">getRemoteServiceReferences</a></span>&#8203;(<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;target,
<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="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;filter)</code></th>
<td class="colLast">
<div class="block">
 Returns an array of <code>IRemoteServiceReference</code> objects.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<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(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)">getRemoteServiceReferences</a></span>&#8203;(<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;target,
<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;idFilter,
<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="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;filter)</code></th>
<td class="colLast">
<div class="block">Returns an array of <code>IRemoteServiceReference</code> objects.</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeRemoteServiceListener(org.eclipse.ecf.remoteservice.IRemoteServiceListener)">removeRemoteServiceListener</a></span>&#8203;(<a href="IRemoteServiceListener.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceListener</a>&nbsp;listener)</code></th>
<td class="colLast">
<div class="block">Remove remote service registration/unregistration listener for this
 container.</div>
</td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setConnectContextForAuthentication(org.eclipse.ecf.core.security.IConnectContext)">setConnectContextForAuthentication</a></span>&#8203;(<a href="../core/security/IConnectContext.html" title="interface in org.eclipse.ecf.core.security">IConnectContext</a>&nbsp;connectContext)</code></th>
<td class="colLast">
<div class="block">Set connect context for authentication upon subsequent calls to
 <a href="#getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)"><code>getRemoteServiceReferences(ID[], String, String)</code></a> or <a href="#asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)"><code>asyncGetRemoteServiceReferences(ID[], String, String)</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#ungetRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">ungetRemoteService</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">Unget IRemoteServiceReference.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.core.runtime.IAdaptable</h3>
<a id="methods.inherited.from.class.org.eclipse.core.runtime.IAdaptable">
<!--   -->
</a><code>getAdapter</code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ 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="addRemoteServiceListener(org.eclipse.ecf.remoteservice.IRemoteServiceListener)">addRemoteServiceListener</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">addRemoteServiceListener</span>&#8203;(<span class="arguments"><a href="IRemoteServiceListener.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceListener</a>&nbsp;listener)</span></div>
<div class="block">Add listener for remote service registration/unregistration for this
 container</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - notified of service registration/unregistration events. Must
            not be <code>null</code> .</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="removeRemoteServiceListener(org.eclipse.ecf.remoteservice.IRemoteServiceListener)">removeRemoteServiceListener</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">removeRemoteServiceListener</span>&#8203;(<span class="arguments"><a href="IRemoteServiceListener.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceListener</a>&nbsp;listener)</span></div>
<div class="block">Remove remote service registration/unregistration listener for this
 container.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - to remove. Must not be <code>null</code> .</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.identity.ID[],java.lang.String,java.lang.String)">getRemoteServiceReferences</a></h3>
<div class="memberSignature"><span class="returnType"><a href="IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>[]</span>&nbsp;<span class="memberName">getRemoteServiceReferences</span>&#8203;(<span class="arguments"><a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;target,
<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;idFilter,
<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="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;filter)</span>
                                              throws <span class="exceptions"><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a>,
<a href="../core/ContainerConnectException.html" title="class in org.eclipse.ecf.core">ContainerConnectException</a></span></div>
<div class="block">Returns an array of <code>IRemoteServiceReference</code> objects. The
 returned array of <code>IRemoteServiceReference</code> objects contains
 services that were registered under the specified class and match the
 specified idFilter, and filter criteria.
 <p>
 Note this method assumes that the enclosing container has previously
 been connected, and uses the idFilter to filter among targets within the
 previously connected set of container IDs.  To request connection as 
 part of reference lookup, see <a href="#getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)"><code>getRemoteServiceReferences(ID, String, String)</code></a>.
 </p>
 
 <p>
 The list is valid at the time of the call to this method, however since
 the Framework is a very dynamic environment, services can be modified or
 unregistered at anytime.
 
 <p><code>target</code> is a remote container to connect to.  If <code>null</code>, no connection attempt is made.</p>
 <p>
 <code>idFilter</code> is used to select a registered services that were
 registered by a given set of containers with id in idFilter. Only
 services exposed by a container with id in idFilter will be returned.  If <code>idFilter</code> is <code>null</code>, all containers are
 considered to match the filter.
 
 <p>
 <code>filter</code> is used to select the registered service whose
 properties objects contain keys and values which satisfy the filter. See
 <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>Filter</code></a> for a description of the filter string syntax.
 If <code>filter</code> is <code>null</code>, all registered services
 are considered to match the filter. If <code>filter</code> cannot be
 parsed, an <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>InvalidSyntaxException</code></a> will be thrown with a human
 readable message where the filter became unparsable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - a target container to connect to if enclosing container is not already 
            connected.  May be <code>null</code>.</dd>
<dd><code>idFilter</code> - an array of ID instances that will restrict the search for
            matching container ids If null, all remote containers will be
            considered in search for matching IRemoteServiceReference
            instances. May be <code>null</code>.</dd>
<dd><code>clazz</code> - the fully qualified name of the interface class that describes
            the desired service. Must not be <code>null</code>.</dd>
<dd><code>filter</code> - The filter criteria. May be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of IRemoteServiceReferences matching given search criteria or 
            <code>null</code> if no services are found that match the search.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a></code> - If filter contains an invalid filter string that cannot be parsed.</dd>
<dd><code><a href="../core/ContainerConnectException.html" title="class in org.eclipse.ecf.core">ContainerConnectException</a></code> - if container cannot connect</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.identity.ID[],java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></h3>
<div class="memberSignature"><span class="returnType">org.eclipse.equinox.concurrent.future.IFuture</span>&nbsp;<span class="memberName">asyncGetRemoteServiceReferences</span>&#8203;(<span class="arguments"><a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;target,
<a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;idFilter,
<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="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;filter)</span></div>
<div class="block">Asynchronously returns an array of <code>IRemoteServiceReference</code> objects. The
 returned array of <code>IRemoteServiceReference</code> objects contains
 services that were registered under the specified class and match the
 specified idFilter, and filter criteria.
 <p>
 The IFuture is returned immediately, and subsequent calls to <code>IFuture.get()</code>
 or <code>IFuture.get(long)</code> will return the actual results received.  The type of
 the Object returned from <code>IFuture.get()</code> will be IRemoteServiceReference [].
 
 <p>
 The list is valid at the time of the call to this method, however since
 the Framework is a very dynamic environment, services can be modified or
 unregistered at anytime.
 
 <p><code>target</code> is a remote container to connect to.  If <code>null</code>, no connection attempt is made.</p>
 <p>
 <code>idFilter</code> is used to select a registered services that were
 registered by a given set of containers with id in idFilter. Only
 services exposed by a container with id in idFilter will be returned.  If <code>idFilter</code> is <code>null</code>, all containers are
 considered to match the filter.
 
 <p>
 <code>filter</code> is used to select the registered service whose
 properties objects contain keys and values which satisfy the filter. See
 <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>Filter</code></a> for a description of the filter string syntax.
 If <code>filter</code> is <code>null</code>, all registered services
 are considered to match the filter. If <code>filter</code> cannot be
 parsed, an <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>InvalidSyntaxException</code></a> will be thrown with a human
 readable message where the filter became unparsable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - an target to connect to if enclosing container is not already 
            connected.  May be <code>null</code>.</dd>
<dd><code>idFilter</code> - an array of ID instances that will restrict the search for
            matching container ids If null, all remote containers will be
            considered in search for matching IRemoteServiceReference
            instances. May be <code>null</code>.</dd>
<dd><code>clazz</code> - the fully qualified name of the interface class that describes
            the desired service. Must not be <code>null</code>.</dd>
<dd><code>filter</code> - The filter criteria. May be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IFuture that through subsequent calls to IFuture#get() will return
         IRemoteServiceReference [] with IRemoteServiceReferences matching given search criteria. 
         Will not return <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID[],java.lang.String,java.lang.String)">getRemoteServiceReferences</a></h3>
<div class="memberSignature"><span class="returnType"><a href="IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>[]</span>&nbsp;<span class="memberName">getRemoteServiceReferences</span>&#8203;(<span class="arguments"><a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;idFilter,
<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="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;filter)</span>
                                              throws <span class="exceptions"><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a></span></div>
<div class="block">Returns an array of <code>IRemoteServiceReference</code> objects. The
 returned array of <code>IRemoteServiceReference</code> objects contains
 services that were registered under the specified class and match the
 specified idFilter, and filter criteria.
 <p>
 Note this method assumes that the enclosing container has previously
 been connected, and uses the idFilter to filter among targets within the
 previously connected set of container IDs.  To request connection as 
 part of reference lookup, see <a href="#getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)"><code>getRemoteServiceReferences(ID, String, String)</code></a>.
 </p>
 
 <p>
 The list is valid at the time of the call to this method, however since
 the Framework is a very dynamic environment, services can be modified or
 unregistered at anytime.
 
 <p>
 <code>idFilter</code> is used to select a registered services that were
 registered by a given set of containers with id in idFilter. Only
 services exposed by a container with id in idFilter will be returned.
 
 <p>
 If <code>idFilter</code> is <code>null</code>, all containers are
 considered to match the filter.
 
 <p>
 <code>filter</code> is used to select the registered service whose
 properties objects contain keys and values which satisfy the filter. See
 <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>Filter</code></a> for a description of the filter string syntax.
 
 <p>
 If <code>filter</code> is <code>null</code>, all registered services
 are considered to match the filter. If <code>filter</code> cannot be
 parsed, an <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>InvalidSyntaxException</code></a> will be thrown with a human
 readable message where the filter became unparsable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>idFilter</code> - an array of ID instances that will restrict the search for
            matching container ids If null, all remote containers will be
            considered in search for matching IRemoteServiceReference
            instances. May be <code>null</code>.</dd>
<dd><code>clazz</code> - the fully qualified name of the interface class that describes
            the desired service. Must not be <code>null</code>.</dd>
<dd><code>filter</code> - The filter criteria. May be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of IRemoteServiceReferences matching given search criteria or 
            <code>null</code> if no services are found that match the search.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a></code> - If filter contains an invalid filter string that cannot be parsed.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)">getRemoteServiceReferences</a></h3>
<div class="memberSignature"><span class="returnType"><a href="IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>[]</span>&nbsp;<span class="memberName">getRemoteServiceReferences</span>&#8203;(<span class="arguments"><a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;target,
<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="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;filter)</span>
                                              throws <span class="exceptions"><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a>,
<a href="../core/ContainerConnectException.html" title="class in org.eclipse.ecf.core">ContainerConnectException</a></span></div>
<div class="block"><p>
 Returns an array of <code>IRemoteServiceReference</code> objects. The
 returned array of <code>IRemoteServiceReference</code> objects contains
 services that were registered under the specified class and match the
 specified idFilter, and filter criteria.
 </p>
 <p>
 The list is valid at the time of the call to this method, however since
 the Framework is a very dynamic environment, services can be modified or
 unregistered at anytime.
 </p>
 <p>target is a remote container to connect to.</p>
 <p>
 <code>filter</code> is used to select the registered service whose
 properties objects contain keys and values which satisfy the filter. See
 <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>Filter</code></a> for a description of the filter string syntax.
 
 <p>
 If <code>filter</code> is <code>null</code>, all registered services
 are considered to match the filter. If <code>filter</code> cannot be
 parsed, an <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>InvalidSyntaxException</code></a> will be thrown with a human
 readable message where the filter became unparsable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - an target to connect to if enclosing container is not already 
            connected.  May be <code>null</code>.</dd>
<dd><code>clazz</code> - the fully qualified name of the interface class that describes
            the desired service. Must not be <code>null</code>.</dd>
<dd><code>filter</code> - The filter criteria. May be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of IRemoteServiceReferences matching given search criteria or 
            <code>null</code> if no services are found that match the search.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a></code> - If filter contains an invalid filter string that cannot be parsed.</dd>
<dd><code><a href="../core/ContainerConnectException.html" title="class in org.eclipse.ecf.core">ContainerConnectException</a></code> - if container cannot connect</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID[],java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></h3>
<div class="memberSignature"><span class="returnType">org.eclipse.equinox.concurrent.future.IFuture</span>&nbsp;<span class="memberName">asyncGetRemoteServiceReferences</span>&#8203;(<span class="arguments"><a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>[]&nbsp;idFilter,
<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="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;filter)</span></div>
<div class="block">Asynchronously returns an array of <code>IRemoteServiceReference</code> objects. The
 returned array of <code>IRemoteServiceReference</code> objects contains
 services that were registered under the specified class and match the
 specified idFilter, and filter criteria.
 <p>
 Note this method assumes that the enclosing container has previously
 been connected, and uses the idFilter to filter among targets within the
 previously connected set of container IDs.  To request connection as 
 part of reference lookup, see <a href="#getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)"><code>getRemoteServiceReferences(ID, String, String)</code></a>.
 </p>
 <p>
 The IFuture is returned immediately, and subsequent calls to <code>IFuture.get()</code>
 or <code>IFuture.get(long)</code> will return the actual results received.  The type of
 the Object returned from <code>IFuture.get()</code> will be IRemoteServiceReference [].
 
 <p>
 The list is valid at the time of the call to this method, however since
 the Framework is a very dynamic environment, services can be modified or
 unregistered at anytime.
 
 <p>
 <code>idFilter</code> is used to select a registered services that were
 registered by a given set of containers with id in idFilter. Only
 services exposed by a container with id in idFilter will be returned.
 
 <p>
 If <code>idFilter</code> is <code>null</code>, all containers are
 considered to match the filter.
 
 <p>
 <code>filter</code> is used to select the registered service whose
 properties objects contain keys and values which satisfy the filter. See
 <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>Filter</code></a> for a description of the filter string syntax.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>idFilter</code> - an array of ID instances that will restrict the search for
            matching container ids If null, all remote containers will be
            considered in search for matching IRemoteServiceReference
            instances. May be <code>null</code>.</dd>
<dd><code>clazz</code> - the fully qualified name of the interface class that describes
            the desired service. Must not be <code>null</code>.</dd>
<dd><code>filter</code> - The filter criteria. May be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IFuture that through subsequent calls to IFuture#get() will return
         IRemoteServiceReference [] with IRemoteServiceReferences matching given search criteria. 
         Will not return <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></h3>
<div class="memberSignature"><span class="returnType">org.eclipse.equinox.concurrent.future.IFuture</span>&nbsp;<span class="memberName">asyncGetRemoteServiceReferences</span>&#8203;(<span class="arguments"><a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;target,
<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="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;filter)</span></div>
<div class="block">Asynchronously returns an array of <code>IRemoteServiceReference</code> objects. The
 returned array of <code>IRemoteServiceReference</code> objects contains
 services that were registered under the specified class and match the
 specified idFilter, and filter criteria.
 <p>
 The IFuture is returned immediately, and subsequent calls to <code>IFuture.get()</code>
 or <code>IFuture.get(long)</code> will return the actual results received.  The type of
 the Object returned from <code>IFuture.get()</code> will be IRemoteServiceReference [].
 
 <p>
 The list is valid at the time of the call to this method, however since
 the Framework is a very dynamic environment, services can be modified or
 unregistered at anytime.
 
 <p>
 <code>idFilter</code> is used to select a registered services that were
 registered by a given set of containers with id in idFilter. Only
 services exposed by a container with id in idFilter will be returned.
 
 <p>target is a remote container to connect to.</p>
 
 <p>
 <code>filter</code> is used to select the registered service whose
 properties objects contain keys and values which satisfy the filter. See
 <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>Filter</code></a> for a description of the filter string syntax.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>target</code> - an target to connect to if enclosing container is not already 
            connected.  May be <code>null</code>.</dd>
<dd><code>clazz</code> - the fully qualified name of the interface class that describes
            the desired service. Must not be <code>null</code>.</dd>
<dd><code>filter</code> - The filter criteria. May be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IFuture that through subsequent calls to IFuture#get() will return
         IRemoteServiceReference [] with IRemoteServiceReferences matching given search criteria. 
         Will not return <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getAllRemoteServiceReferences(java.lang.String,java.lang.String)">getAllRemoteServiceReferences</a></h3>
<div class="memberSignature"><span class="returnType"><a href="IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a>[]</span>&nbsp;<span class="memberName">getAllRemoteServiceReferences</span>&#8203;(<span class="arguments"><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="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;filter)</span>
                                                 throws <span class="exceptions"><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a></span></div>
<div class="block"><p>
 Returns an array of <code>IRemoteServiceReference</code> objects. The
 returned array of <code>IRemoteServiceReference</code> objects contains
 services that were registered under the specified class, or if the clazz
 parameter is <code>null</code> all services registered.
 </p>
 <p>
 The list is valid at the time of the call to this method, however since
 the remote service container is a very dynamic environment, services can be modified or
 unregistered at anytime.
 </p>
 <p>
 <code>filter</code> is used to select the registered service whose
 properties objects contain keys and values which satisfy the filter. See
 <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/Filter.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>Filter</code></a> for a description of the filter string syntax.
 </p>
 <p>
 If <code>filter</code> is <code>null</code>, all registered services
 are considered to match the filter. If <code>filter</code> cannot be
 parsed, an <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>InvalidSyntaxException</code></a> will be thrown with a human
 readable message where the filter became unparsable.
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazz</code> - the fully qualified name of the interface class that describes
            the desired service. May be <code>null</code>.</dd>
<dd><code>filter</code> - The filter criteria. May be <code>null</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Array of IRemoteServiceReferences matching given search criteria or 
            <code>null</code> if no services are found that match the search.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a></code> - If filter contains an invalid filter string that cannot be parsed.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServiceNamespace()">getRemoteServiceNamespace</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../core/identity/Namespace.html" title="class in org.eclipse.ecf.core.identity">Namespace</a></span>&nbsp;<span class="memberName">getRemoteServiceNamespace</span>()</div>
<div class="block">Get namespace to use for this remote service provider.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Namespace to use for creating IRemoteServiceID for this remote service provider.  Will
 not return <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServiceID(org.eclipse.ecf.core.identity.ID,long)">getRemoteServiceID</a></h3>
<div class="memberSignature"><span class="returnType"><a href="IRemoteServiceID.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceID</a></span>&nbsp;<span class="memberName">getRemoteServiceID</span>&#8203;(<span class="arguments"><a href="../core/identity/ID.html" title="interface in org.eclipse.ecf.core.identity">ID</a>&nbsp;containerID,
long&nbsp;containerRelativeID)</span></div>
<div class="block">Get a remote service ID from a containerID and a containerRelative long value.  Will return a non-null value
 if the IRemoteServiceRegistration/Reference is currently 'known' to this container adapter.  <code>null</code> 
 if not.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>containerID</code> - the containerID that is the server/host for the remote service.  Must not be <code>null</code>.  This 
 must be the containerID for the <b>server</b>/host of the remote service.</dd>
<dd><code>containerRelativeID</code> - the long value identifying the remote service relative to the container ID.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IRemoteServiceID instance if the associated IRemoteServiceRegistration/Reference is known to this container
 adapter, <code>null</code> if it is not.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getRemoteServiceReference(org.eclipse.ecf.remoteservice.IRemoteServiceID)">getRemoteServiceReference</a></h3>
<div class="memberSignature"><span class="returnType"><a href="IRemoteServiceReference.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceReference</a></span>&nbsp;<span class="memberName">getRemoteServiceReference</span>&#8203;(<span class="arguments"><a href="IRemoteServiceID.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceID</a>&nbsp;serviceID)</span></div>
<div class="block">Get the remote service reference known to this container for the given IRemoteServiceID.  Note that
 this method must be guaranteed not to block by the provider implementation.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>serviceID</code> - the serviceID to retrieve the IRemoteServiceReference for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IRemoteServiceReference the remote service reference associated with the given serviceID.
 Will return <code>null</code> if no IRemoteServiceReference found for the given serviceID.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</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="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">Get remote service for given IRemoteServiceReference. Note that clients
 that call this method successfully should later call
 <a href="IRemoteServiceContainerAdapter.html#ungetRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)"><code>IRemoteServiceContainerAdapter.ungetRemoteService(IRemoteServiceReference)</code></a>
 when the IRemoteService will no longer be used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - the IRemoteServiceReference for the desired service. Must not
            be <code>null</code> .</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IRemoteService representing the remote service. If remote service
         no longer exists for reference, then <code>null</code> is
         returned.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#ungetRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)"><code>ungetRemoteService(IRemoteServiceReference)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="ungetRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">ungetRemoteService</a></h3>
<div class="memberSignature"><span class="returnType">boolean</span>&nbsp;<span class="memberName">ungetRemoteService</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">Unget IRemoteServiceReference. Release all resources associated with the
 given IRemoteServiceReference. This method should be called by users of
 the IRemoteServiceReference that have previously called
 <a href="IRemoteServiceContainerAdapter.html#getRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)"><code>IRemoteServiceContainerAdapter.getRemoteService(IRemoteServiceReference)</code></a>.
 If this method returns true, then the previously used IRemoteService will
 no longer be usable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reference</code> - the IRemoteServiceReference to unget</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if unget successful, false if not. If this method returns
         true, then the IRemoteService instance previously retrieved via
         the given IRemoteServiceReference instance provided will no
         longer be usable.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#getRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)"><code>getRemoteService(IRemoteServiceReference)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="createRemoteFilter(java.lang.String)">createRemoteFilter</a></h3>
<div class="memberSignature"><span class="returnType"><a href="IRemoteFilter.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteFilter</a></span>&nbsp;<span class="memberName">createRemoteFilter</span>&#8203;(<span class="arguments"><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;filter)</span>
                          throws <span class="exceptions"><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a></span></div>
<div class="block">Creates a <code>IRemoteFilter</code> object. This <code>IRemoteFilter</code> object may
 be used to match a <code>IRemoteServiceReference</code> object or a
 <code>Dictionary</code> object.
 
 <p>
 If the filter cannot be parsed, an <a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink"><code>InvalidSyntaxException</code></a> will be
 thrown with a human readable message where the filter became unparsable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>filter</code> - The filter string.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <code>IRemoteFilter</code> object encapsulating the filter string.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/InvalidSyntaxException.html?is-external=true" title="class or interface in org.osgi.framework" class="externalLink">InvalidSyntaxException</a></code> - If <code>filter</code> contains an invalid
         filter string that cannot be parsed.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang" class="externalLink">NullPointerException</a></code> - If <code>filter</code> is null.</dd>
<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 this IRemoteServiceContainerAdapter is no
         longer valid.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd>"Framework specification for a description of the filter string syntax.", 
<a href="https://docs.osgi.org/javadoc/osgi.core/7.0.0/org/osgi/framework/FrameworkUtil.html?is-external=true#createFilter(java.lang.String)" title="class or interface in org.osgi.framework" class="externalLink"><code>FrameworkUtil.createFilter(String)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="setConnectContextForAuthentication(org.eclipse.ecf.core.security.IConnectContext)">setConnectContextForAuthentication</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">setConnectContextForAuthentication</span>&#8203;(<span class="arguments"><a href="../core/security/IConnectContext.html" title="interface in org.eclipse.ecf.core.security">IConnectContext</a>&nbsp;connectContext)</span></div>
<div class="block">Set connect context for authentication upon subsequent calls to
 <a href="#getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)"><code>getRemoteServiceReferences(ID[], String, String)</code></a> or <a href="#asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)"><code>asyncGetRemoteServiceReferences(ID[], String, String)</code></a>. This
 method should be called with a non-null connectContext in order to allow
 authentication to occur during.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>connectContext</code> - the connect context to use for authenticating.
            If <code>null</code>, then no authentication will be
            attempted.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</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/IRemoteServiceConsumer.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>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>
