Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2010-10-04 22:07:52 +0000
committerslewis2010-10-04 22:07:52 +0000
commit192c82653a961b1924b318c2a10aaeb81af0dd54 (patch)
treeb270f728915ac657d86f34a7a43f5e1cb98f0aa3
parenta370bdf9f2afcd0f38144613f52c933a59d6bd32 (diff)
downloadorg.eclipse.ecf-192c82653a961b1924b318c2a10aaeb81af0dd54.tar.gz
org.eclipse.ecf-192c82653a961b1924b318c2a10aaeb81af0dd54.tar.xz
org.eclipse.ecf-192c82653a961b1924b318c2a10aaeb81af0dd54.zip
Changes for implementing enhancement https://bugs.eclipse.org/bugs/show_bug.cgi?id=326949
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java33
-rw-r--r--providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java14
2 files changed, 40 insertions, 7 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
index 27949794c..52b111dd5 100644
--- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
+++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RegistrySharedObject.java
@@ -204,26 +204,33 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer
}
/**
- * @since 3.0
+ * @since 3.4
*/
- public IRemoteServiceReference[] getRemoteServiceReferences(ID targetID, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException {
- Trace.entering(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_ENTERING, this.getClass(), "getRemoteServiceReferences", new Object[] {targetID, clazz, filter}); //$NON-NLS-1$
+ public IRemoteServiceReference[] getRemoteServiceReferences(ID target, ID[] idFilter, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException {
+ Trace.entering(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_ENTERING, this.getClass(), "getRemoteServiceReferences", new Object[] {target, idFilter, clazz, filter}); //$NON-NLS-1$
// If no target specified, just search for all available references
- if (targetID == null) {
- final IRemoteServiceReference[] result = getRemoteServiceReferences((ID[]) null, clazz, filter);
+ if (target == null) {
+ final IRemoteServiceReference[] result = getRemoteServiceReferences(idFilter, clazz, filter);
Trace.exiting(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_EXITING, this.getClass(), "getRemoteServiceReferences", result); //$NON-NLS-1$
return result;
}
// If we're not already connected, then connect to targetID
- connectToRemoteServiceTarget(targetID);
+ connectToRemoteServiceTarget(target);
// Now we're connected (or already were connected), so we look for remote service references for target
- final IRemoteServiceReference[] result = getRemoteServiceReferences((ID[]) null, clazz, filter);
+ final IRemoteServiceReference[] result = getRemoteServiceReferences(idFilter, clazz, filter);
Trace.exiting(Activator.PLUGIN_ID, IRemoteServiceProviderDebugOptions.METHODS_EXITING, this.getClass(), "getRemoteServiceReferences", result); //$NON-NLS-1$
return result;
}
/**
+ * @since 3.0
+ */
+ public IRemoteServiceReference[] getRemoteServiceReferences(ID targetID, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException {
+ return getRemoteServiceReferences(targetID, null, clazz, filter);
+ }
+
+ /**
* @since 3.3 for preventing issues like bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=304427
*/
protected void connectToRemoteServiceTarget(ID targetID) throws ContainerConnectException {
@@ -1523,6 +1530,18 @@ public class RegistrySharedObject extends BaseSharedObject implements IRemoteSer
}
/**
+ * @since 3.4
+ */
+ public IFuture asyncGetRemoteServiceReferences(final ID target, final ID[] idFilter, final String clazz, final String filter) {
+ IExecutor executor = new JobsExecutor("asyncGetRemoteServiceReferences"); //$NON-NLS-1$
+ return executor.execute(new IProgressRunnable() {
+ public Object run(IProgressMonitor monitor) throws Exception {
+ return getRemoteServiceReferences(target, idFilter, clazz, filter);
+ }
+ }, null);
+ }
+
+ /**
* @since 3.0
*/
public IFuture asyncGetRemoteServiceReferences(final ID target, final String clazz, final String filter) {
diff --git a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java
index 41c475d09..e3e9662a8 100644
--- a/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java
+++ b/providers/bundles/org.eclipse.ecf.provider.remoteservice/src/org/eclipse/ecf/provider/remoteservice/generic/RemoteServiceContainer.java
@@ -123,4 +123,18 @@ public class RemoteServiceContainer extends TCPClientSOContainer implements IRem
public IRemoteServiceReference[] getAllRemoteServiceReferences(String clazz, String filter) throws InvalidSyntaxException {
return registry.getAllRemoteServiceReferences(clazz, filter);
}
+
+ /**
+ * @since 3.4
+ */
+ public IRemoteServiceReference[] getRemoteServiceReferences(ID target, ID[] idFilter, String clazz, String filter) throws InvalidSyntaxException, ContainerConnectException {
+ return registry.getRemoteServiceReferences(target, idFilter, clazz, filter);
+ }
+
+ /**
+ * @since 3.4
+ */
+ public IFuture asyncGetRemoteServiceReferences(ID target, ID[] idFilter, String clazz, String filter) {
+ return registry.asyncGetRemoteServiceReferences(target, idFilter, clazz, filter);
+ }
}

Back to the top