Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "ECF Remote Services"

Line 1: Line 1:
 
Scott has been fooling around with designing a remote OSGI services API.
 
Scott has been fooling around with designing a remote OSGI services API.
  
Here's some ideas for an IRemoteServiceContainer
+
 
 +
Bslow are some ideas for an IRemoteServiceContainer...an adapter interface for registering, finding, and using remote service references.
 +
 
 +
See also the newly checked in (7/17/2006) org.eclipse.ecf.remoteservice plugin (see [[http://www.eclipse.org/ecf/resources.html ecf dev resources]] to get CVS access to the code (in plugins module).
  
 
<pre>
 
<pre>

Revision as of 14:05, 17 July 2006

Scott has been fooling around with designing a remote OSGI services API.


Bslow are some ideas for an IRemoteServiceContainer...an adapter interface for registering, finding, and using remote service references.

See also the newly checked in (7/17/2006) org.eclipse.ecf.remoteservice plugin (see [ecf dev resources] to get CVS access to the code (in plugins module).

public interface IRemoteServiceContainer {
	
	public void addRemoteServiceListener(IRemoteServiceListener listener);
	public void removeRemoteServiceListener(IRemoteServiceListener listener);
	
	public IRemoteServiceRegistration registerRemoteService(String [] clazzes, Object service, Dictionary properties) throws ECFException;
	public IRemoteServiceReference[] getRemoteServiceReferences(ID [] idFilter, String clazz, String filter) throws ECFException;
	public IRemoteService getRemoteService(IRemoteServiceReference ref) throws ECFException;
	public boolean ungetRemoteService(IRemoteServiceReference ref);
	
}

public interface IRemoteServiceRegistration {
	public IRemoteServiceReference getReference();
	public void setProperties(Dictionary properties);
	public void unregister();
}

public interface IRemoteServiceReference {
	public ID getRemoteID();
	public Object getProperty(String key);
	public String [] getPropertyKeys();
}

public interface IRemoteService {
	public Object callSynch(IRemoteCallable call) throws ECFException;
	public AsynchResult callAsynch(IRemoteCallable call) throws ECFException;
	public void fire(IRemoteCallable call) throws ECFException;
}

public interface IRemoteCallable {
	public String getMethod();
	public Object [] getParameters();
	public Dictionary getProperties();
	public long getTimeout();
}

Back to the top