示例#1
0
        public EPStage GetStage(string stageUri)
        {
            if (stageUri == null)
            {
                throw new ArgumentException("Stage-URI is null");
            }

            RuntimeDestroyedCheck();
            lock (_stages) {
                EPStageImpl stage = _stages.Get(stageUri);
                if (stage != null)
                {
                    return(stage);
                }

                int stageId = _services.StageRecoveryService.StageAdd(stageUri);
                stage = AllocateStage(stageUri, stageId, _services.SchedulingService.Time);
                _stages.Put(stageUri, stage);

                ISet <EventType> filterServiceTypes = new LinkedHashSet <EventType>(_services.EventTypeRepositoryBus.AllTypes);
                Supplier <ICollection <EventType> > availableTypes = () => filterServiceTypes;
                stage.StageSpecificServices.FilterServiceSPI.Init(availableTypes);
                stage.StageSpecificServices.SchedulingServiceSPI.Init();

                return(stage);
            }
        }
示例#2
0
        public void RecoverStage(
            string stageURI,
            int stageId,
            long stageCurrentTime)
        {
            EPStageImpl stage = AllocateStage(stageURI, stageId, stageCurrentTime);

            _stages.Put(stageURI, stage);
        }