|
BDE 4.39.x Production Release
|
#include <balm_metricsample.h>
This class provides an in-core value-semantic representation of a sample of metric values. The class contains a collection of addresses to (external) MetricRecord objects holding the values for their respective metrics (aggregated over some period of time). The metric records contained by a sample are broken into a series of groups, which are represented by MetricSampleGroup objects. Each group contains a sequence of records and an elapsed time value, indicating the period of time over which those records were taken. This class also provides a timestamp value, used to indicate when the sample was collected. The class provides a method, appendGroups, that appends a group of metric records to the sample. Arrays supplied using appendGroups must be valid for the productive lifetime of the MetricSample object or until they are removed by calling removeAllRecords.
Public Types | |
| typedef bsl::vector< MetricSampleGroup >::const_iterator | const_iterator |
Public Member Functions | |
| BSLMF_NESTED_TRAIT_DECLARATION (MetricSample, bslma::UsesBslmaAllocator) | |
| MetricSample (bslma::Allocator *basicAllocator=0) | |
| MetricSample (const MetricSample &original, bslma::Allocator *basicAllocator=0) | |
| ~MetricSample () | |
| MetricSample & | operator= (const MetricSample &rhs) |
| void | setTimeStamp (const bdlt::DatetimeTz &timeStamp) |
| void | appendGroup (const MetricSampleGroup &group) |
| void | appendGroup (const MetricRecord *records, int numRecords, const bsls::TimeInterval &elapsedTime) |
| void | removeAllRecords () |
| const MetricSampleGroup & | sampleGroup (int index) const |
| const bdlt::DatetimeTz & | timeStamp () const |
| const_iterator | begin () const |
| const_iterator | end () const |
| int | numGroups () const |
| int | numRecords () const |
| bsl::ostream & | print (bsl::ostream &stream, int level=0, int spacesPerLevel=4) const |
Friends | |
| bool | operator== (const MetricSample &lhs, const MetricSample &rhs) |
| typedef bsl::vector<MetricSampleGroup>::const_iterator balm::MetricSample::const_iterator |
A const_iterator is an alias for an iterator over the non-modifiable sample groups contained in a MetricSample.
|
inline |
Create an empty metric sample. Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used.
| balm::MetricSample::MetricSample | ( | const MetricSample & | original, |
| bslma::Allocator * | basicAllocator = 0 |
||
| ) |
Create a metric sample containing the same value as the specified original sample. Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used.
MetricSampleGroup objects copies only the pointers to their respective MetricRecord arrays, and does not copy the records themselves; hence, these record arrays must remain valid for the productive lifetimes of all copied objects or until the records are removed by calling removeAllRecords.
|
inline |
Destroy this metric sample.
|
inline |
Append to the sequence of groups maintained by this sample a new group containing the specified sequence of records of specified length numRecords measuring the specified elapsedTime.
0 <= numRecords, records refers to a contiguous sequence of size (at least) numRecords, and elapsedTime > bsls::TimeInterval(0, 0). records is not copied: hence, the supplied array must remain valid for the lifetime of this object or until the records are removed by calling removeAllRecords(). This method is functionally equivalent to:
|
inline |
Append the specified group of records to the sequence of groups maintained by this sample. If group.numRecords() is 0 this method has no effect.
group.elapsedTime() > bsls::TimeInterval(0, 0). MetricRecord objects referred to by records are not copied: hence, the supplied array must remain valid for the productive lifetime of this object or until the group is removed by calling removeAllRecords().
|
inline |
Return an iterator positioned at the beginning of the sequence of MetricSampleGroup objects contained by this object.
appendGroups or removeAllRecords(). | balm::MetricSample::BSLMF_NESTED_TRAIT_DECLARATION | ( | MetricSample | , |
| bslma::UsesBslmaAllocator | |||
| ) |
|
inline |
Return an iterator positioned one one past the final MetricSampleGroup object in the sequence of sample groups contained by this object.
appendGroup or removeAllRecords().
|
inline |
Return the number of record groups (i.e., MetricSampleGroup objects) that are contained in this object.
|
inline |
Return the total number of records in this sample (i.e., the sum of the lengths of all the appended record groups).
| MetricSample & balm::MetricSample::operator= | ( | const MetricSample & | rhs | ) |
Assign to this sample the value of the specified rhs sample and return a reference to this modifiable sample.
MetricSampleGroup objects contained in rhs copies only the pointers to their respective MetricRecord arrays, and does not copy records themselves; hence, these record arrays must remain valid for the productive lifetimes of all copied objects or until records are removed by calling removeAllRecords. | bsl::ostream & balm::MetricSample::print | ( | bsl::ostream & | stream, |
| int | level = 0, |
||
| int | spacesPerLevel = 4 |
||
| ) | const |
Format this object to the specified output stream at the (absolute value of) the optionally specified indentation level and return a reference to stream. If level is specified, optionally specify spacesPerLevel, the number of spaces per indentation level for this and all of its nested objects. If level is negative, suppress indentation of the first line. If spacesPerLevel is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level). If stream is not valid on entry, this operation has no effect.
|
inline |
Remove all metric records from this sample.
|
inline |
Return a reference to the non-modifiable MetricSampleGroup object at the specified index in this sample.
0 <= index < numGroups(). appendGroup or removeAllRecords().
|
inline |
Set the timestamp (used to indicate when the sample was taken) to the specified timeStamp.
|
inline |
Return a reference to the non-modifiable timestamp for this sample.
|
friend |
Return true if the specified lhs and rhs samples have the same value, and false otherwise. Two samples have the same value if they have the same timestamp value, contain the same number of record groups, and if the respective groups of records at each index position have the same value.