public HistoricalEventViewableBase( HistoricalEventViewableFactoryBase factory, PollExecStrategy pollExecStrategy, AgentInstanceContext agentInstanceContext) { _factory = factory; _pollExecStrategy = pollExecStrategy; _agentInstanceContext = agentInstanceContext; }
/// <summary> /// Ctor. /// </summary> /// <param name="myStreamNumber">is the stream number of the view</param> /// <param name="inputParameters">are the event property names providing input parameter keys</param> /// <param name="pollExecStrategy">is the strategy to use for retrieving results</param> /// <param name="dataCache">is looked up before using the strategy</param> /// <param name="eventType">is the type of events generated by the view</param> public DatabasePollingViewable( int myStreamNumber, IList <String> inputParameters, PollExecStrategy pollExecStrategy, DataCache dataCache, EventType eventType) { _myStreamNumber = myStreamNumber; _inputParameters = inputParameters; _pollExecStrategy = pollExecStrategy; _dataCache = dataCache; _eventType = eventType; }
/// <summary> /// Ctor. /// </summary> /// <param name="myStreamNumber">is the stream number of the view</param> /// <param name="inputParameters">are the event property names providing input parameter keys</param> /// <param name="pollExecStrategy">is the strategy to use for retrieving results</param> /// <param name="dataCache">is looked up before using the strategy</param> /// <param name="eventType">is the type of events generated by the view</param> /// <param name="threadLocalManager">The thread local manager.</param> public DatabasePollingViewable( int myStreamNumber, IList <String> inputParameters, PollExecStrategy pollExecStrategy, DataCache dataCache, EventType eventType, IThreadLocalManager threadLocalManager) { _dataCacheThreadLocal = threadLocalManager.Create <DataCache>(() => null); _myStreamNumber = myStreamNumber; _inputParameters = inputParameters; _pollExecStrategy = pollExecStrategy; _dataCache = dataCache; _eventType = eventType; }
public HistoricalEventViewableDatabase( HistoricalEventViewableDatabaseFactory factory, PollExecStrategy pollExecStrategy, AgentInstanceContext agentInstanceContext) : base(factory, pollExecStrategy, agentInstanceContext) { try { DataCache = agentInstanceContext.DatabaseConfigService.GetDataCache( factory.DatabaseName, agentInstanceContext, factory.StreamNumber, factory.ScheduleCallbackId); } catch (DatabaseConfigException e) { throw new EPException("Failed to obtain cache: " + e.Message, e); } }
/// <summary> /// Ctor. /// </summary> /// <param name="methodStreamSpec">defines class and method names</param> /// <param name="myStreamNumber">is the stream number</param> /// <param name="inputParameters">the input parameter expressions</param> /// <param name="pollExecStrategy">the execution strategy</param> /// <param name="dataCache">the cache to use</param> /// <param name="eventType">the type of event returned</param> /// <param name="exprEvaluatorContext">expression evaluation context</param> public MethodPollingViewable( bool isStaticMethod, Type methodProviderClass, MethodStreamSpec methodStreamSpec, int myStreamNumber, IList <ExprNode> inputParameters, PollExecStrategy pollExecStrategy, DataCache dataCache, EventType eventType, ExprEvaluatorContext exprEvaluatorContext) { this._isStaticMethod = isStaticMethod; this._methodProviderClass = methodProviderClass; this._methodStreamSpec = methodStreamSpec; this._inputParameters = inputParameters; this._pollExecStrategy = pollExecStrategy; this._dataCache = dataCache; this._eventType = eventType; this._exprEvaluatorContext = exprEvaluatorContext; }
public HistoricalEventViewableMethod( HistoricalEventViewableMethodFactory factory, PollExecStrategy pollExecStrategy, AgentInstanceContext agentInstanceContext) : base(factory, pollExecStrategy, agentInstanceContext) { try { ConfigurationCommonMethodRef configCache = agentInstanceContext.ImportServiceRuntime.GetConfigurationMethodRef(factory.ConfigurationName); ConfigurationCommonCache dataCacheDesc = configCache != null ? configCache.DataCacheDesc : null; this.DataCache = agentInstanceContext.HistoricalDataCacheFactory.GetDataCache( dataCacheDesc, agentInstanceContext, factory.StreamNumber, factory.ScheduleCallbackId); } catch (EPException) { throw; } catch (Exception e) { throw new EPException("Failed to obtain cache: " + e.Message, e); } }
public void Validate( EngineImportService engineImportService, StreamTypeService streamTypeService, TimeProvider timeProvider, VariableService variableService, TableService tableService, ScriptingService scriptingService, ExprEvaluatorContext exprEvaluatorContext, ConfigurationInformation configSnapshot, SchedulingService schedulingService, string engineURI, IDictionary <int, IList <ExprNode> > sqlParameters, EventAdapterService eventAdapterService, StatementContext statementContext) { _statementContext = statementContext; // validate and visit var validationContext = new ExprValidationContext(streamTypeService, engineImportService, statementContext.StatementExtensionServicesContext, null, timeProvider, variableService, tableService, exprEvaluatorContext, eventAdapterService, statementContext.StatementName, statementContext.StatementId, statementContext.Annotations, null, statementContext.ScriptingService, false, false, true, false, null, false); var visitor = new ExprNodeIdentifierVisitor(true); var validatedInputParameters = new List <ExprNode>(); foreach (var exprNode in _methodStreamSpec.Expressions) { var validated = ExprNodeUtility.GetValidatedSubtree(ExprNodeOrigin.METHODINVJOIN, exprNode, validationContext); validatedInputParameters.Add(validated); validated.Accept(visitor); } // determine required streams _requiredStreams = new SortedSet <int>(); foreach (var identifier in visitor.ExprProperties) { _requiredStreams.Add(identifier.First); } // class-based evaluation if (_metadata.MethodProviderClass != null) { // resolve actual method to use var handler = new ProxyExprNodeUtilResolveExceptionHandler { ProcHandle = e => { if (_methodStreamSpec.Expressions.Count == 0) { return(new ExprValidationException("Method footprint does not match the number or type of expression parameters, expecting no parameters in method: " + e.Message, e)); } var resultTypes = ExprNodeUtility.GetExprResultTypes(validatedInputParameters); return(new ExprValidationException( string.Format("Method footprint does not match the number or type of expression parameters, expecting a method where parameters are typed '{0}': {1}", TypeHelper.GetParameterAsString(resultTypes), e.Message), e)); } }; var desc = ExprNodeUtility.ResolveMethodAllowWildcardAndStream( _metadata.MethodProviderClass.FullName, _metadata.IsStaticMethod ? null : _metadata.MethodProviderClass, _methodStreamSpec.MethodName, validatedInputParameters, engineImportService, eventAdapterService, statementContext.StatementId, false, null, handler, _methodStreamSpec.MethodName, tableService, statementContext.EngineURI); _validatedExprNodes = desc.ChildEvals; // Construct polling strategy as a method invocation var invocationTarget = _metadata.InvocationTarget; var strategy = _metadata.Strategy; var variableReader = _metadata.VariableReader; var variableName = _metadata.VariableName; var methodFastClass = desc.FastMethod; if (_metadata.EventTypeEventBeanArray != null) { _pollExecStrategy = new MethodPollingExecStrategyEventBeans(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else if (_metadata.OptionalMapType != null) { if (desc.FastMethod.ReturnType.IsArray) { _pollExecStrategy = new MethodPollingExecStrategyMapArray(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else if (_metadata.IsCollection) { _pollExecStrategy = new MethodPollingExecStrategyMapCollection(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else if (_metadata.IsEnumerator) { _pollExecStrategy = new MethodPollingExecStrategyMapIterator(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else { _pollExecStrategy = new MethodPollingExecStrategyMapPlain(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } } else if (_metadata.OptionalOaType != null) { if (desc.FastMethod.ReturnType == typeof(Object[][])) { _pollExecStrategy = new MethodPollingExecStrategyOAArray(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else if (_metadata.IsCollection) { _pollExecStrategy = new MethodPollingExecStrategyOACollection(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else if (_metadata.IsEnumerator) { _pollExecStrategy = new MethodPollingExecStrategyOAIterator(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else { _pollExecStrategy = new MethodPollingExecStrategyOAPlain(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } } else { if (desc.FastMethod.ReturnType.IsArray) { _pollExecStrategy = new MethodPollingExecStrategyPONOArray(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else if (_metadata.IsCollection) { _pollExecStrategy = new MethodPollingExecStrategyPONOCollection(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else if (_metadata.IsEnumerator) { _pollExecStrategy = new MethodPollingExecStrategyPONOIterator(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } else { _pollExecStrategy = new MethodPollingExecStrategyPONOPlain(eventAdapterService, methodFastClass, _eventType, invocationTarget, strategy, variableReader, variableName, variableService); } } } else { // script-based evaluation _pollExecStrategy = new MethodPollingExecStrategyScript(_metadata.ScriptExpression, _metadata.EventTypeEventBeanArray); _validatedExprNodes = ExprNodeUtility.GetEvaluators(validatedInputParameters); } }