This class provides a mechanism for recording, to a metric, the elapsed time from the construction of an instance of the guard until that instance goes out of scope (and is destroyed). The constructor of this class takes an optional argument indicating the time units in which to report the elapsed time; by default a guard will report time in seconds. The supplied time units determine the scale of the double value reported by this guard, but does not affect the precision of the elapsed time measurement. Each instance of this class delegates to a Collector for the metric. This Collector is initialized on construction based on the constructor arguments. If this scoped guard is not initialized with an active metric, or if the supplied metric becomes inactive before the scoped guard is destroyed, then isActive() will return false and no metric values will be recorded. Note that if the metric supplied at construction is not active when the scoped guard is constructed, the scoped guard will not become active or record metric values regardless of the future state of that supplied metric.
See balm_stopwatchscopedguard
Initialize this scoped guard to record an elapsed time to the specified metricId from the optionally specified manager. Optionally specify the timeUnits in which to report elapsed time. If timeUnits is not provided, the elapsed time will be reported in seconds. If manager is 0, the DefaultMetricsManager singleton instance is used. If no manager is supplied and the default instance has not been created, this object will be inactive (i.e., it will not record any values); similarly, if the metric's associated category is disabled (i.e., metricId.category()->enabled() is false), then this object will be inactive. The behavior is undefined unless unless metricId is a valid id returned by the MetricRepository object owned by the indicated metrics manager. Note that timeUnits indicates the scale of the double value reported by this guard, but does not affect the precision of the elapsed time measurement.
| balm::StopwatchScopedGuard::StopwatchScopedGuard |
( |
const char * |
category, |
|
|
const char * |
name, |
|
|
Units |
timeUnits, |
|
|
MetricsManager * |
manager = 0 |
|
) |
| |
|
inline |
Initialize this scoped guard to record an elapsed time to the metric, identified by the specified category and name, from the optionally specified manager. Optionally specify the timeUnits in which to report elapsed time. If timeUnits is not provided, the elapsed time will be reported in seconds. If manager is 0, use the DefaultMetricsManager instance. If no manager is supplied, and the default instance has not been created, this object will be inactive (i.e., it will not record any values); similarly, if the identified category is disabled, then this object will be inactive. The behavior is undefined unless category and name are null-terminated. Note that timeUnits indicates the scale of the double value reported by this guard, but does not affect the precision of the elapsed time measurement.