<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.1) on Tue Jun 15 20:48:08 PDT 2021 -->
<title>IRemoteServiceContainerAdapter (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: IRemoteServiceContainerAdapter">
<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,"i16":6,"i17":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/IRemoteServiceContainerAdapter.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 IRemoteServiceContainerAdapter" class="title">Interface IRemoteServiceContainerAdapter</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code>org.eclipse.core.runtime.IAdaptable</code>, <code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code>, <code><a href="IRemoteServiceHost.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceHost</a></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></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">IRemoteServiceContainerAdapter</span>
extends <a href="IRemoteServiceHost.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceHost</a>, <a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></pre>
<div class="block">Entry point remote service container adapter. This is the entry point
 interface for accessing remote services through ECF containers.</div>
</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><a href="IRemoteServiceRegistration.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceRegistration</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerRemoteService(java.lang.String%5B%5D,java.lang.Object,java.util.Dictionary)">registerRemoteService</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;clazzes,
<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>&nbsp;service,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Dictionary.html?is-external=true" title="class or interface in java.util" class="externalLink">Dictionary</a>&nbsp;properties)</code></th>
<td class="colLast">
<div class="block">Register a new remote service.</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="#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="rowColor" id="i15">
<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="altColor" id="i16">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRemoteServiceCallPolicy(org.eclipse.ecf.remoteservice.IRemoteServiceCallPolicy)">setRemoteServiceCallPolicy</a></span>&#8203;(<a href="IRemoteServiceCallPolicy.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceCallPolicy</a>&nbsp;policy)</code></th>
<td class="colLast">
<div class="block">Set the remote service call policy to enable authorization on remote service method calls</div>
</td>
</tr>
<tr class="rowColor" id="i17">
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#addRemoteServiceListener(org.eclipse.ecf.remoteservice.IRemoteServiceListener)">addRemoteServiceListener</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceHost.html#addRemoteServiceListener(org.eclipse.ecf.remoteservice.IRemoteServiceListener)">addRemoteServiceListener</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceHost.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceHost</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#removeRemoteServiceListener(org.eclipse.ecf.remoteservice.IRemoteServiceListener)">removeRemoteServiceListener</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceHost.html#removeRemoteServiceListener(org.eclipse.ecf.remoteservice.IRemoteServiceListener)">removeRemoteServiceListener</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceHost.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceHost</a></code></dd>
<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="registerRemoteService(java.lang.String[],java.lang.Object,java.util.Dictionary)">registerRemoteService</a></h3>
<div class="memberSignature"><span class="returnType"><a href="IRemoteServiceRegistration.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceRegistration</a></span>&nbsp;<span class="memberName">registerRemoteService</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;clazzes,
<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>&nbsp;service,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Dictionary.html?is-external=true" title="class or interface in java.util" class="externalLink">Dictionary</a>&nbsp;properties)</span></div>
<div class="block">Register a new remote service. This method is to be called by the service
 server...i.e. the client that wishes to make available a service to other
 client within this container.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceHost.html#registerRemoteService(java.lang.String%5B%5D,java.lang.Object,java.util.Dictionary)">registerRemoteService</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceHost.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceHost</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clazzes</code> - the interface classes that the service exposes to remote
            clients. Must not be <code>null</code> and must not be an
            empty array.</dd>
<dd><code>service</code> - the service object.  Under normal conditions this object must
            <ul><li>not be <code>null</code></li>
            <li>implement all of the classes specified by the first parameter</li>
            </ul>
            The only situation when the service object may be <code>null</code> is if
            the service property <a href="Constants.html#SERVICE_REGISTER_PROXY"><code>Constants.SERVICE_REGISTER_PROXY</code></a> is set
            in the properties.  If <a href="Constants.html#SERVICE_REGISTER_PROXY"><code>Constants.SERVICE_REGISTER_PROXY</code></a> is set
            in the properties parameter (to an arbitrary value), then the service
            object may then be <code>null</code>.</dd>
<dd><code>properties</code> - to be associated with service</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>IRemoteServiceRegistration the service registration. Will not
         return <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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)">getRemoteServiceReferences</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)">getRemoteServiceReferences</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#getRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)">getRemoteServiceReferences</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID%5B%5D,java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#asyncGetRemoteServiceReferences(org.eclipse.ecf.core.identity.ID,java.lang.String,java.lang.String)">asyncGetRemoteServiceReferences</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#getAllRemoteServiceReferences(java.lang.String,java.lang.String)">getAllRemoteServiceReferences</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#getRemoteServiceNamespace()">getRemoteServiceNamespace</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceHost.html#getRemoteServiceNamespace()">getRemoteServiceNamespace</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceHost.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceHost</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#getRemoteServiceID(org.eclipse.ecf.core.identity.ID,long)">getRemoteServiceID</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceHost.html#getRemoteServiceID(org.eclipse.ecf.core.identity.ID,long)">getRemoteServiceID</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceHost.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceHost</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#getRemoteServiceReference(org.eclipse.ecf.remoteservice.IRemoteServiceID)">getRemoteServiceReference</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="#ungetRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)"><code>ungetRemoteService(IRemoteServiceReference)</code></a>
 when the IRemoteService will no longer be used.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#getRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">getRemoteService</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="#getRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)"><code>getRemoteService(IRemoteServiceReference)</code></a>.
 If this method returns true, then the previously used IRemoteService will
 no longer be usable.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#ungetRemoteService(org.eclipse.ecf.remoteservice.IRemoteServiceReference)">ungetRemoteService</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#createRemoteFilter(java.lang.String)">createRemoteFilter</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IRemoteServiceConsumer.html#setConnectContextForAuthentication(org.eclipse.ecf.core.security.IConnectContext)">setConnectContextForAuthentication</a></code>&nbsp;in interface&nbsp;<code><a href="IRemoteServiceConsumer.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceConsumer</a></code></dd>
<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>
<li class="blockList">
<section class="detail">
<h3><a id="setRemoteServiceCallPolicy(org.eclipse.ecf.remoteservice.IRemoteServiceCallPolicy)">setRemoteServiceCallPolicy</a></h3>
<div class="memberSignature"><span class="returnType">boolean</span>&nbsp;<span class="memberName">setRemoteServiceCallPolicy</span>&#8203;(<span class="arguments"><a href="IRemoteServiceCallPolicy.html" title="interface in org.eclipse.ecf.remoteservice">IRemoteServiceCallPolicy</a>&nbsp;policy)</span></div>
<div class="block">Set the remote service call policy to enable authorization on remote service method calls</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>policy</code> - Implementation of <code>IRemoteServiceCallPolicy</code> containing authorization specific code</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the underlying provider supports using the policy, <code>false</code> if
 it does not support using the policy.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>6.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/IRemoteServiceContainerAdapter.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>
