예제 #1
0
        public override ContextControllerStatementCtxCache ValidateStatement(ContextControllerStatementBase statement)
        {
            StatementSpecCompiledAnalyzerResult streamAnalysis = StatementSpecCompiledAnalyzer.AnalyzeFilters(statement.StatementSpec);

            ContextControllerPartitionedUtil.ValidateStatementForContext(FactoryContext.ContextName, statement, streamAnalysis, GetItemEventTypes(_segmentedSpec), FactoryContext.ServicesContext.NamedWindowMgmtService);
            return(new ContextControllerStatementCtxCacheFilters(streamAnalysis.Filters));
        }
예제 #2
0
 public void PopulateContextInternalFilterAddendums(ContextInternalFilterAddendum filterAddendum, object key)
 {
     if (_filtersSpecsNestedContexts == null || _filtersSpecsNestedContexts.IsEmpty())
     {
         return;
     }
     ContextControllerPartitionedUtil.PopulateAddendumFilters(key, _filtersSpecsNestedContexts, _segmentedSpec, null, filterAddendum.FilterAddendum);
 }
예제 #3
0
        public override void PopulateFilterAddendums(
            IDictionary <FilterSpecCompiled, FilterValueSetParam[][]> filterAddendum,
            ContextControllerStatementDesc statement,
            object key,
            int contextId)
        {
            ContextControllerStatementCtxCacheFilters statementInfo =
                (ContextControllerStatementCtxCacheFilters)statement.Caches[FactoryContext.NestingLevel - 1];

            ContextControllerPartitionedUtil.PopulateAddendumFilters(
                key, statementInfo.FilterSpecs, _segmentedSpec, statement.Statement.StatementSpec, filterAddendum);
        }
예제 #4
0
        public override ContextControllerStatementCtxCache ValidateStatement(ContextControllerStatementBase statement)
        {
            var streamAnalysis = StatementSpecCompiledAnalyzer.AnalyzeFilters(statement.StatementSpec);

            ContextControllerPartitionedUtil.ValidateStatementForContext(
                _factoryContext.ContextName, statement, streamAnalysis, GetItemEventTypes(_hashedSpec),
                _factoryContext.ServicesContext.NamedWindowMgmtService);
            // register non-property expression to be able to recreated indexes
            foreach (var entry in _nonPropertyExpressions)
            {
                _factoryContext.ServicesContext.FilterNonPropertyRegisteryService.RegisterNonPropertyExpression(statement.StatementContext.StatementName, entry.Key, entry.Value);
            }
            return(new ContextControllerStatementCtxCacheFilters(streamAnalysis.Filters));
        }
예제 #5
0
 public override void ValidateFactory()
 {
     Type[] propertyTypes = ContextControllerPartitionedUtil.ValidateContextDesc(FactoryContext.ContextName, _segmentedSpec);
     _contextBuiltinProps = ContextPropertyEventType.GetPartitionType(_segmentedSpec, propertyTypes);
 }