Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "ECF Remote Services"
Line 15: | Line 15: | ||
} | } | ||
+ | |||
+ | 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(); | ||
+ | } | ||
+ | |||
</pre> | </pre> |
Revision as of 17:31, 10 July 2006
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(); }