attr.sprintf("MYStat_%s_%s", category, ident); cleanStringForUseAsAttr(attr); + int flags = IF_BASICPUB; int cRecent = my_window / my_quantum; switch (as_type) { case STATS_ENTRY_TYPE_INT32 | AS_RECENT: - Pool.NewProbe< stats_entry_recent<int> >(ident, attr.Value(), 0); + { + stats_entry_recent<int> probe = + Pool.NewProbe< stats_entry_recent<int> >(ident, attr.Value(), flags); + probe->SetRecentMax(cRecent); + } break; case STATS_ENTRY_TYPE_DOUBLE | AS_RECENT: - Pool.NewProbe< stats_entry_recent<double> >(ident, attr.Value(), 0); + { + stats_entry_recent<double> probe = + Pool.NewProbe< stats_entry_recent<double> >(ident, attr.Value(), flags); + probe->SetRecentMax(cRecent); + } break; } } void MyStats::Sample(const char * ident, int val) { - stats_entry_recent<int>* probe = Pool.Get< stats_entry_recent<int> >(ident); + stats_entry_recent<int>* probe = + Pool.Get< stats_entry_recent<int> >(ident); if (probe) probe->Add(val); } void MyStats::Sample(const char * name, double val) { - stats_entry_recent<double>* probe = Pool.Get< stats_entry_recent<double> >(ident); + stats_entry_recent<double>* probe = + Pool.Get< stats_entry_recent<double> >(ident); if (probe) - probe->Add(double); + probe->Add(val); } {endcode}