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;
}
}
}