void CEventRateBucketGatherer::initializeFeatureData()

in lib/model/CEventRateBucketGatherer.cc [1518:1590]


void CEventRateBucketGatherer::initializeFeatureData() {
    for (std::size_t i = 0, n = m_DataGatherer.numberFeatures(); i < n; ++i) {
        switch (m_DataGatherer.feature(i)) {
        case model_t::E_IndividualCountByBucketAndPerson:
        case model_t::E_IndividualNonZeroCountByBucketAndPerson:
        case model_t::E_IndividualTotalBucketCountByPerson:
        case model_t::E_IndividualIndicatorOfBucketPerson:
        case model_t::E_IndividualLowCountsByBucketAndPerson:
        case model_t::E_IndividualHighCountsByBucketAndPerson:
            // We always gather person counts.
            break;
        case model_t::E_IndividualArrivalTimesByPerson:
        case model_t::E_IndividualLongArrivalTimesByPerson:
        case model_t::E_IndividualShortArrivalTimesByPerson:
            // TODO
            break;
        case model_t::E_IndividualTimeOfDayByBucketAndPerson:
        case model_t::E_IndividualTimeOfWeekByBucketAndPerson:
            m_FeatureData[model_t::E_DiurnalTimes] = TSizeSizePrMeanAccumulatorUMapQueue(
                m_DataGatherer.params().s_LatencyBuckets, this->bucketLength(),
                this->currentBucketStartTime());
            break;

        case model_t::E_IndividualLowNonZeroCountByBucketAndPerson:
        case model_t::E_IndividualHighNonZeroCountByBucketAndPerson:
            // We always gather person counts.
            break;
        case model_t::E_IndividualUniqueCountByBucketAndPerson:
        case model_t::E_IndividualLowUniqueCountByBucketAndPerson:
        case model_t::E_IndividualHighUniqueCountByBucketAndPerson:
        case model_t::E_IndividualInfoContentByBucketAndPerson:
        case model_t::E_IndividualHighInfoContentByBucketAndPerson:
        case model_t::E_IndividualLowInfoContentByBucketAndPerson:
            m_FeatureData[model_t::E_UniqueValues] = TSizeSizePrStrDataUMapQueue(
                m_DataGatherer.params().s_LatencyBuckets, this->bucketLength(),
                this->currentBucketStartTime(), TSizeSizePrStrDataUMap(1));
            break;

        case model_t::E_PopulationAttributeTotalCountByPerson:
        case model_t::E_PopulationCountByBucketPersonAndAttribute:
        case model_t::E_PopulationIndicatorOfBucketPersonAndAttribute:
        case model_t::E_PopulationLowCountsByBucketPersonAndAttribute:
        case model_t::E_PopulationHighCountsByBucketPersonAndAttribute:
            // We always gather person attribute counts.
            break;
        case model_t::E_PopulationUniquePersonCountByAttribute:
            m_FeatureData[model_t::E_AttributePeople] = TSizeUSetVec();
            break;
        case model_t::E_PopulationUniqueCountByBucketPersonAndAttribute:
        case model_t::E_PopulationLowUniqueCountByBucketPersonAndAttribute:
        case model_t::E_PopulationHighUniqueCountByBucketPersonAndAttribute:
        case model_t::E_PopulationInfoContentByBucketPersonAndAttribute:
        case model_t::E_PopulationLowInfoContentByBucketPersonAndAttribute:
        case model_t::E_PopulationHighInfoContentByBucketPersonAndAttribute:
            m_FeatureData[model_t::E_UniqueValues] = TSizeSizePrStrDataUMapQueue(
                m_DataGatherer.params().s_LatencyBuckets, this->bucketLength(),
                this->currentBucketStartTime(), TSizeSizePrStrDataUMap(1));
            break;
        case model_t::E_PopulationTimeOfDayByBucketPersonAndAttribute:
        case model_t::E_PopulationTimeOfWeekByBucketPersonAndAttribute:
            m_FeatureData[model_t::E_DiurnalTimes] = TSizeSizePrMeanAccumulatorUMapQueue(
                m_DataGatherer.params().s_LatencyBuckets, this->bucketLength(),
                this->currentBucketStartTime());
            break;

        CASE_INDIVIDUAL_METRIC:
        CASE_POPULATION_METRIC:
            LOG_ERROR(<< "Unexpected feature = "
                      << model_t::print(m_DataGatherer.feature(i)));
            break;
        }
    }
}