internal void SetupData() { configuration = QueryPipelineConfiguration.instance; Data = new ParallelQueryData(MARSMemoryOptions.instance.QueryDataCapacity); Data.OnResize += WireStages; CacheTraitReferencesStage = SetupTraitCacheStage(); ConditionRatingStage = SetupMatchRating(); FindMatchProposalsStage = SetupMatchIntersection(); DataAvailabilityStage = SetupAvailabilityCheckStage(); TraitFilterStage = SetupTraitFilterStage(); MatchReductionStage = SetupMatchReduction(); BestStandaloneMatchStage = SetupBestStandaloneMatchStage(); ResultFillStage = SetupQueryResultFill(); MarkUsedStage = SetupMarkUsedStage(); AcquireHandlingStage = SetupAcquireHandlingStage(); }
internal AcquireHandlingStage SetupAcquireHandlingStage() { var handlerTransform = new AcquireHandlingTransform { Pipeline = this, QueryBackend = ModuleLoaderCore.instance.GetModule <MARSQueryBackend>(), WorkingIndices = Data.DefiniteMatchAcquireIndices }; var indicesTransform = new ManageIndicesTransform() { WorkingIndices = Data.DefiniteMatchAcquireIndices, Input1 = Data.UpdatingIndices, Output = Data.AcquiringIndices }; var stage = new AcquireHandlingStage(handlerTransform, indicesTransform); WireAcquireHandlingStage(stage); return(stage); }
void WireAcquireHandlingStage(AcquireHandlingStage stage) { stage.Transformation1.Input1 = Data.QueryResults; stage.Transformation1.Output = Data.AcquireHandlers; }