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

ECF Remote Services

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

Here's some ideas for an IRemoteServiceContainer

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