package jadex.bridge;
import jadex.commons.IFuture;
import jadex.commons.service.IResultSelector;
import jadex.commons.service.ISearchManager;
import jadex.commons.service.IService;
import jadex.commons.service.IVisitDecider;
/**
* Interface for remote management service.
*/
public interface IRemoteServiceManagementService extends IService
{
/**
* Get service proxies from a remote component.
* (called from arbitrary components)
* @param cid Component id that is used to start the search.
* @param manager The search manager.
* @param decider The visit decider.
* @param selector The result selector.
* @return Collection or single result (i.e. service proxies).
*/
public IFuture getServiceProxies(IComponentIdentifier cid,
ISearchManager manager, IVisitDecider decider, IResultSelector selector);
/**
* Get a service proxy from a remote component.
* (called from arbitrary components)
* @param cid The remote provider id.
* @param service The service type.
* @return The service proxy.
*/
public IFuture getServiceProxy(IComponentIdentifier cid, Class service);
/**
* Get all service proxies from a remote component.
* (called from arbitrary components)
* @param cid The remote provider id.
* @param service The service type.
* @return The service proxy.
*/
public IFuture getServiceProxies(IComponentIdentifier cid, Class service);
/**
* Get all declared service proxies from a remote component.
* (called from arbitrary components)
* @param cid The remote provider id.
* @param service The service type.
* @return The service proxy.
*/
public IFuture getDeclaredServiceProxies(IComponentIdentifier cid);
/**
* Get an external access proxy from a remote component.
* (called from arbitrary components)
* @param cid Component target id.
* @return External access of remote component.
*/
public IFuture getExternalAccessProxy(IComponentIdentifier cid);
}