void WireAvailabilityCheckStage(DataAvailabilityCheckStage stage) { var transform = stage.Transformation; transform.Input4 = Data.QueryMatchIds; transform.Input5 = Data.Exclusivities; transform.Output = Data.ConditionMatchSets; }
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 DataAvailabilityCheckStage SetupAvailabilityCheckStage() { var dataTransform = new DataAvailabilityTransform() { WorkingIndices = Data.PotentialMatchAcquiringIndices, Input1 = m_Database.DataUsedByQueries, Input2 = m_Database.ReservedData, Input3 = m_Database.SharedDataUsersCounter, Input4 = Data.QueryMatchIds, Input5 = Data.Exclusivities, Output = Data.ConditionMatchSets }; var stage = new DataAvailabilityCheckStage(dataTransform); WireAvailabilityCheckStage(stage); return(stage); }