in lib/model/CEventRateBucketGatherer.cc [1036:1129]
void CEventRateBucketGatherer::featureData(core_t::TTime time,
core_t::TTime /*bucketLength*/,
TFeatureAnyPrVec& result) const {
result.clear();
if (!this->dataAvailable(time) ||
time >= this->currentBucketStartTime() + this->bucketLength()) {
LOG_DEBUG(<< "No data available at " << time
<< ", current bucket = " << this->printCurrentBucket()
<< ", bucket length = " << this->bucketLength());
return;
}
for (std::size_t i = 0, n = m_DataGatherer.numberFeatures(); i < n; ++i) {
const model_t::EFeature feature = m_DataGatherer.feature(i);
switch (feature) {
case model_t::E_IndividualCountByBucketAndPerson:
this->personCounts(feature, time, result);
break;
case model_t::E_IndividualNonZeroCountByBucketAndPerson:
case model_t::E_IndividualTotalBucketCountByPerson:
this->nonZeroPersonCounts(feature, time, result);
break;
case model_t::E_IndividualIndicatorOfBucketPerson:
this->personIndicator(feature, time, result);
break;
case model_t::E_IndividualLowCountsByBucketAndPerson:
case model_t::E_IndividualHighCountsByBucketAndPerson:
this->personCounts(feature, time, result);
break;
case model_t::E_IndividualArrivalTimesByPerson:
case model_t::E_IndividualLongArrivalTimesByPerson:
case model_t::E_IndividualShortArrivalTimesByPerson:
this->personArrivalTimes(feature, time, result);
break;
case model_t::E_IndividualLowNonZeroCountByBucketAndPerson:
case model_t::E_IndividualHighNonZeroCountByBucketAndPerson:
this->nonZeroPersonCounts(feature, time, result);
break;
case model_t::E_IndividualUniqueCountByBucketAndPerson:
case model_t::E_IndividualLowUniqueCountByBucketAndPerson:
case model_t::E_IndividualHighUniqueCountByBucketAndPerson:
this->bucketUniqueValuesPerPerson(feature, time, result);
break;
case model_t::E_IndividualInfoContentByBucketAndPerson:
case model_t::E_IndividualHighInfoContentByBucketAndPerson:
case model_t::E_IndividualLowInfoContentByBucketAndPerson:
this->bucketCompressedLengthPerPerson(feature, time, result);
break;
case model_t::E_IndividualTimeOfDayByBucketAndPerson:
case model_t::E_IndividualTimeOfWeekByBucketAndPerson:
this->bucketMeanTimesPerPerson(feature, time, result);
break;
CASE_INDIVIDUAL_METRIC:
LOG_ERROR(<< "Unexpected feature = " << model_t::print(feature));
break;
case model_t::E_PopulationAttributeTotalCountByPerson:
case model_t::E_PopulationCountByBucketPersonAndAttribute:
this->nonZeroAttributeCounts(feature, time, result);
break;
case model_t::E_PopulationIndicatorOfBucketPersonAndAttribute:
this->attributeIndicator(feature, time, result);
break;
case model_t::E_PopulationUniquePersonCountByAttribute:
this->peoplePerAttribute(feature, result);
break;
case model_t::E_PopulationUniqueCountByBucketPersonAndAttribute:
case model_t::E_PopulationLowUniqueCountByBucketPersonAndAttribute:
case model_t::E_PopulationHighUniqueCountByBucketPersonAndAttribute:
this->bucketUniqueValuesPerPersonAttribute(feature, time, result);
break;
case model_t::E_PopulationLowCountsByBucketPersonAndAttribute:
case model_t::E_PopulationHighCountsByBucketPersonAndAttribute:
this->nonZeroAttributeCounts(feature, time, result);
break;
case model_t::E_PopulationInfoContentByBucketPersonAndAttribute:
case model_t::E_PopulationLowInfoContentByBucketPersonAndAttribute:
case model_t::E_PopulationHighInfoContentByBucketPersonAndAttribute:
this->bucketCompressedLengthPerPersonAttribute(feature, time, result);
break;
case model_t::E_PopulationTimeOfDayByBucketPersonAndAttribute:
case model_t::E_PopulationTimeOfWeekByBucketPersonAndAttribute:
this->bucketMeanTimesPerPersonAttribute(feature, time, result);
break;
CASE_POPULATION_METRIC:
LOG_ERROR(<< "Unexpected feature = " << model_t::print(feature));
break;
}
}
}