/**************************************************************************************
* Copyright (C) 2008 EsperTech, Inc. All rights reserved. *
* http://esper.codehaus.org *
* http://www.espertech.com *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the GPL license *
* a copy of which has been included with this distribution in the license.txt file. *
**************************************************************************************/
package com.espertech.esper.core.service;
import com.asper.sources.javax.naming.Context;
import com.espertech.esper.client.Configuration;
import com.espertech.esper.client.ConfigurationInformation;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.core.context.mgr.ContextManagementService;
import com.espertech.esper.core.deploy.DeploymentStateService;
import com.espertech.esper.epl.metric.MetricReportingService;
import com.espertech.esper.epl.named.NamedWindowService;
import com.espertech.esper.epl.core.EngineImportService;
import com.espertech.esper.epl.variable.VariableService;
import com.espertech.esper.core.thread.ThreadingService;
import com.espertech.esper.event.EventAdapterService;
import com.espertech.esper.event.vaevent.ValueAddEventService;
import com.espertech.esper.filter.FilterService;
import com.espertech.esper.schedule.SchedulingService;
import com.espertech.esper.schedule.SchedulingMgmtService;
import com.espertech.esper.schedule.TimeProvider;
import com.espertech.esper.timer.TimerService;
/**
* A service provider interface that makes available internal engine services.
*/
public interface EPServiceProviderSPI extends EPServiceProvider
{
/**
* For the default provider instance, which carries a null provider URI,
* the URI value is "default".
*/
public static final String DEFAULT_ENGINE_URI = "default";
/**
* For the default provider instance, which carries a "default" provider URI,
* the property name qualification and stream name qualification may use "default".
*/
public static final String DEFAULT_ENGINE_URI__QUALIFIER = "default";
/**
* Returns statement management service for the engine.
* @return the StatementLifecycleSvc
*/
public StatementLifecycleSvc getStatementLifecycleSvc();
/**
* Get the EventAdapterService for this engine.
* @return the EventAdapterService
*/
public EventAdapterService getEventAdapterService();
/**
* Get the SchedulingService for this engine.
* @return the SchedulingService
*/
public SchedulingService getSchedulingService();
/**
* Get the SchedulingMgmtService for this engine.
* @return the SchedulingMgmtService
*/
public SchedulingMgmtService getSchedulingMgmtService();
/**
* Returns the filter service.
* @return filter service
*/
public FilterService getFilterService();
/**
* Returns the timer service.
* @return timer service
*/
public TimerService getTimerService();
/**
* Returns the named window service.
* @return named window service
*/
public NamedWindowService getNamedWindowService();
/**
* Returns the current configuration.
* @return configuration information
*/
public ConfigurationInformation getConfigurationInformation();
/**
* Returns the engine environment context for engine-external resources such as adapters.
* @return engine environment context
*/
public Context getContext();
/**
* Returns the extension services context.
* @return extension services context
*/
public ExtensionServicesContext getExtensionServicesContext();
/**
* Returns metrics reporting.
* @return metrics reporting
*/
public MetricReportingService getMetricReportingService();
/**
* Returns variable services.
* @return services
*/
public VariableService getVariableService();
/**
* Returns value-added type service.
* @return value types
*/
public ValueAddEventService getValueAddEventService();
/**
* Returns statement event type reference service.
* @return statement-type reference service
*/
public StatementEventTypeRef getStatementEventTypeRef();
/**
* Returns threading service for the engine.
* @return the ThreadingService
*/
public ThreadingService getThreadingService();
/**
* Returns engine environment context such as plugin loader references.
* @return environment context
*/
public EngineEnvContext getEngineEnvContext();
/**
* Returns services.
* @return services
*/
public EPServicesContext getServicesContext();
/**
* Returns context factory.
* @return factory
*/
public StatementContextFactory getStatementContextFactory();
/**
* Returns engine imports.
* @return engine imports
*/
public EngineImportService getEngineImportService();
/**
* Returns time provider.
* @return time provider
*/
public TimeProvider getTimeProvider();
public StatementIsolationService getStatementIsolationService();
public DeploymentStateService getDeploymentStateService();
public ContextManagementService getContextManagementService();
public void setConfiguration(Configuration configuration);
public void postInitialize();
public void initialize(Long currentTime);
}