Class AbstractClientService
java.lang.Object
org.eclipse.ecf.remoteservice.asyncproxy.AbstractAsyncProxyRemoteService
org.eclipse.ecf.remoteservice.AbstractRemoteService
org.eclipse.ecf.remoteservice.client.AbstractClientService
- All Implemented Interfaces:
InvocationHandler,IRemoteService
- Direct Known Subclasses:
AbstractRestClientService,AbstractRSAClientService
Remote service client service. Implements
IRemoteService.- Since:
- 4.0
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classinner class implementing the asynchronous result object.static classNested classes/interfaces inherited from class org.eclipse.ecf.remoteservice.AbstractRemoteService
AbstractRemoteService.AsyncArgs, AbstractRemoteService.ProxyClassLoader -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected AbstractClientContainerprotected RemoteServiceClientRegistrationFields inherited from class org.eclipse.ecf.remoteservice.AbstractRemoteService
EMPTY_ARGS, futureExecutorService, futureExecutorServiceMaxThreads, iFutureExecutor -
Constructor Summary
ConstructorsConstructorDescriptionAbstractClientService(AbstractClientContainer container, RemoteServiceClientRegistration registration) -
Method Summary
Modifier and TypeMethodDescriptionorg.eclipse.equinox.concurrent.future.IFuturecallAsync(IRemoteCall call) Call remote method specified by call parameter asynchronously, and immediately returnIFutureinstance.protected org.eclipse.equinox.concurrent.future.IFuturecallAsync(IRemoteCall call, IRemoteCallable callable) protected voidcallAsync(IRemoteCall call, IRemoteCallable restClientCallable, IRemoteCallListener listener) voidcallAsync(IRemoteCall call, IRemoteCallListener listener) Call remote method specified by call parameter asynchronously, and notify specified listener when call starts and completes.callSync(IRemoteCall call) Call remote method specified by call parameter synchronously.protected AbstractClientService.UriRequestcreateUriRequest(String endpoint, IRemoteCall call, IRemoteCallable callable) voidfireAsync(IRemoteCall call) Fire remote method specified by call parameter.protected StringgetCallMethodNameForProxyInvoke(Method method, Object[] args) protected Object[]getCallParametersForProxyInvoke(String callMethod, Method proxyMethod, Object[] args) protected AbstractClientContainerprotected String[]protected longprotected RemoteServiceClientRegistrationprotected IRemoteServiceIDprotected IRemoteServiceReferenceprotected voidhandleInvokeException(String message, Throwable e) protected abstract ObjectinvokeRemoteCall(IRemoteCall call, IRemoteCallable callable) Invoke remote call.protected ObjectinvokeSync(IRemoteCall remoteCall) protected StringprepareEndpointAddress(IRemoteCall call, IRemoteCallable callable) protected IRemoteCallParameter[]prepareParameters(String uri, IRemoteCall call, IRemoteCallable callable) protected ObjectprocessResponse(String uri, IRemoteCall call, IRemoteCallable callable, Map responseHeaders, byte[] responseBody) Methods inherited from class org.eclipse.ecf.remoteservice.AbstractRemoteService
addAsyncProxyClasses, addRemoteServiceProxyToProxy, callAsync, callAsync, callAsyncWithResult, callAsyncWithTimeout, callAsyncWithTimeout, callCompletableAsync, callFutureAsync, callFutureAsync, callSync, convertInterfaceNameToAsyncInterfaceName, createProxy, createProxy, createRCCE, createRCCEFailure, createRCCESuccess, createRemoteCall, dispose, findAsyncRemoteServiceProxyClass, findAsyncRemoteServiceProxyClass, getAsyncArgs, getAsyncInvokeMethodName, getAsyncRemoteCall, getCallTimeoutForProxyInvoke, getDefaultTimeout, getFutureExecutorService, getIFutureExecutor, getProxy, getProxy, getRemoteService, getRemoteServiceProxyCreator, handleInvokeSyncException, handleProxyException, invoke, invokeAsync, invokeObject, invokeReturnAsync, isAsync, isInterfaceAsync, isMethodAsync, isOSGIAsync, loadInterfaceClass, loadInterfaceClass, logWarning, setFutureExecutorService, setIFutureExecutorMethods inherited from class org.eclipse.ecf.remoteservice.asyncproxy.AbstractAsyncProxyRemoteService
callFuture, isReturnAsync
-
Field Details
-
registration
-
container
-
-
Constructor Details
-
AbstractClientService
public AbstractClientService(AbstractClientContainer container, RemoteServiceClientRegistration registration)
-
-
Method Details
-
callSync
Description copied from interface:IRemoteServiceCall remote method specified by call parameter synchronously.- Parameters:
call- the remote call to make- Returns:
- Object the result of the call. Will be
nullif remote providesnullas result. - Throws:
ECFException- thrown if disconnect occurs, caller not currently connected, or remote throws Exception
-
callAsync
Description copied from interface:IRemoteServiceCall remote method specified by call parameter asynchronously, and immediately returnIFutureinstance. Returned IFuture will not benull, and allows the caller to retrieve the actual resulting value from the remote call (or exception).- Specified by:
callAsyncin interfaceIRemoteService- Overrides:
callAsyncin classAbstractRemoteService- Parameters:
call- the remote call to make. Must not benull.- Returns:
- IFuture the asynchronous result to allow the caller to poll
for whether the result
IFuture.isDone(), and then toIFuture.get()the actual result.
-
callAsync
Description copied from interface:IRemoteServiceCall remote method specified by call parameter asynchronously, and notify specified listener when call starts and completes.- Parameters:
call- the remote call to make. Must not benull.listener- the listener to notify when call starts and is completed. The listener will be notified via the two event types IRemoteCallStartEvent and IRemoteCallCompleteEvent. Must not benull.- See Also:
-
fireAsync
Description copied from interface:IRemoteServiceFire remote method specified by call parameter. The remote method will be invoked as a result of asynchronous message send, but no failure/exception information will be returned, and no result will be returned- Parameters:
call- the remote call to make. Must not benull.- Throws:
ECFException- if caller not currently connected
-
invokeSync
- Overrides:
invokeSyncin classAbstractRemoteService- Throws:
ECFException
-
getCallParametersForProxyInvoke
protected Object[] getCallParametersForProxyInvoke(String callMethod, Method proxyMethod, Object[] args) - Overrides:
getCallParametersForProxyInvokein classAbstractRemoteService
-
getCallMethodNameForProxyInvoke
- Overrides:
getCallMethodNameForProxyInvokein classAbstractRemoteService
-
getNextRequestID
protected long getNextRequestID() -
callAsync
protected void callAsync(IRemoteCall call, IRemoteCallable restClientCallable, IRemoteCallListener listener) -
callAsync
protected org.eclipse.equinox.concurrent.future.IFuture callAsync(IRemoteCall call, IRemoteCallable callable) -
handleInvokeException
- Throws:
ECFException
-
getClientContainer
-
getRegistration
-
prepareEndpointAddress
-
prepareParameters
protected IRemoteCallParameter[] prepareParameters(String uri, IRemoteCall call, IRemoteCallable callable) throws NotSerializableException - Throws:
NotSerializableException
-
processResponse
protected Object processResponse(String uri, IRemoteCall call, IRemoteCallable callable, Map responseHeaders, byte[] responseBody) throws NotSerializableException - Parameters:
uri- uricall- callcallable- callableresponseHeaders- responseHeadersresponseBody- responseBody- Returns:
- Object processed response
- Throws:
NotSerializableException- if response cannot be deserialized- Since:
- 8.0
-
getRemoteServiceID
- Specified by:
getRemoteServiceIDin classAbstractRemoteService
-
getRemoteServiceReference
- Specified by:
getRemoteServiceReferencein classAbstractRemoteService
-
getInterfaceClassNames
- Specified by:
getInterfaceClassNamesin classAbstractRemoteService
-
createUriRequest
protected AbstractClientService.UriRequest createUriRequest(String endpoint, IRemoteCall call, IRemoteCallable callable) - Parameters:
endpoint- endpointcall- callcallable- callable- Returns:
- UriRequest new UriRequest
- Since:
- 8.5
-
invokeRemoteCall
protected abstract Object invokeRemoteCall(IRemoteCall call, IRemoteCallable callable) throws ECFException Invoke remote call. The implementation of this method should actually make the remote call for the given call and associated callable.- Parameters:
call- the call for the remote call. Will not benull.callable- the callable associated with the remote call. Will not benull.- Returns:
- Object the result of the remote call. May be
null. - Throws:
ECFException- thrown if the call fails.
-