package rocks.inspectit.ui.rcp.repository;
import rocks.inspectit.shared.all.cmr.service.ICachedDataService;
import rocks.inspectit.shared.cs.cmr.service.IBusinessContextManagementService;
import rocks.inspectit.shared.cs.cmr.service.IExceptionDataAccessService;
import rocks.inspectit.shared.cs.cmr.service.IGlobalDataAccessService;
import rocks.inspectit.shared.cs.cmr.service.IHttpTimerDataAccessService;
import rocks.inspectit.shared.cs.cmr.service.IInvocationDataAccessService;
import rocks.inspectit.shared.cs.cmr.service.IJmxDataAccessService;
import rocks.inspectit.shared.cs.cmr.service.ISpanService;
import rocks.inspectit.shared.cs.cmr.service.ISqlDataAccessService;
import rocks.inspectit.shared.cs.cmr.service.ITimerDataAccessService;
import rocks.inspectit.shared.cs.cmr.service.cache.CachedSpanService;
/**
* The interface to the repository definition. A repository can be anywhere and anything, the
* implementation will provide the details on how to access the information.
*
* @author Patrice Bouillet
*/
public interface RepositoryDefinition {
/**
* Returns the IP of the definition.
*
* @return The IP.
*/
String getIp();
/**
* Returns the port of the definition.
*
* @return The port.
*/
int getPort();
/**
* Returns the repository symbolic name.
*
* @return Returns the repository symbolic name.
*/
String getName();
/**
* Returns the invocation data access service for this repository definition.
*
* @return The invocation data access service.
*/
IInvocationDataAccessService getInvocationDataAccessService();
/**
* Returns the sql data access service for this repository definition.
*
* @return The sql data access service.
*/
ISqlDataAccessService getSqlDataAccessService();
/**
* Returns the exception data access service for this repository definition.
*
* @return The exception data access service.
*/
IExceptionDataAccessService getExceptionDataAccessService();
/**
* Returns the global data access service for this repository definition.
*
* @return The global data access service.
*/
ICachedDataService getCachedDataService();
/**
* Returns the timer data access service for this repository definition.
*
* @return The timer data access service.
*/
ITimerDataAccessService getTimerDataAccessService();
/**
* Returns the http timer data access service for this repository definition.
*
* @return The http timer data access service.
*/
IHttpTimerDataAccessService getHttpTimerDataAccessService();
/**
* Returns the {@link IGlobalDataAccessService}.
*
* @return Returns the {@link IGlobalDataAccessService}.
*/
IGlobalDataAccessService getGlobalDataAccessService();
/**
* Returns the {@link IJmxDataAccessService}.
*
* @return Returns the {@link IJmxDataAccessService}.
*/
IJmxDataAccessService getJmxDataAccessService();
/**
* Returns the {@link IBusinessContextManagementService}.
*
* @return Returns the {@link IBusinessContextManagementService}.
*/
IBusinessContextManagementService getBusinessContextMangementService();
/**
* Returns the {@link CachedSpanService}.
*
* @return Returns the {@link CachedSpanService}.
*/
ISpanService getSpanService();
}