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.