kanzi::ValueProfilerSource< Data, SampleData > Class Template Reference

Value source template base class for any data and sample structures. More...

#include <kanzi/core/profiling/value_profiler_source.hpp>

Inheritance diagram for kanzi::ValueProfilerSource< Data, SampleData >:
kanzi::AbstractProfilerSource

Public Member Functions

 ValueProfilerSource (string_view name, string_view category, const FieldNameContainer &fields, const FieldNameContainer &sampleFields, size_t sampleBufferSize)
 Constructor. More...
 
- Public Member Functions inherited from kanzi::AbstractProfilerSource
virtual ~AbstractProfilerSource ()
 
string_view getName () const
 Returns name of this profiler source. More...
 
string_view getCategory () const
 Returns category of this profiler source. More...
 
FieldNameConstIterator beginFieldNames () const
 Returns iterator to the beginning of the container that stores field names for the profiling data. More...
 
FieldNameConstIterator endFieldNames () const
 Returns iterator to the end of the container that stores field names for the profiling data. More...
 
Value getValue (string_view fieldName) const
 Returns value for given profiling data field. More...
 
FieldNameConstIterator beginSampleFieldNames () const
 Returns iterator to the beginning of the container that stores field names for the profiling sample (per invocation) data. More...
 
FieldNameConstIterator endSampleFieldNames () const
 Returns iterator to the end of the container that stores field names for the profiling sample (per invocation) data. More...
 
size_t getSampleCount () const
 Returns the amount of samples that have been collected. More...
 
Value getSampleValue (size_t sampleIndex, string_view fieldName) const
 Returns value for given sample. More...
 

Protected Member Functions

const SampleData & getSample (size_t index) const
 Returns sample data in given index. More...
 
void addSample (SampleData sample)
 Stores sample to sample buffer. More...
 
virtual size_t getSampleCountOverride () const KZ_OVERRIDE
 Returns the amount of samples that have been collected, needs to be implemented by derived class. More...
 
- Protected Member Functions inherited from kanzi::AbstractProfilerSource
 AbstractProfilerSource (string_view name, string_view category, const FieldNameContainer &fields, const FieldNameContainer &sampleFields)
 Constructor for derived classes. More...
 
virtual Value getValueOverride (string_view fieldName) const =0
 Returns value for given profiling data field, needs to be implemented by derived class. More...
 
virtual Value getSampleValueOverride (size_t sampleIndex, string_view fieldName) const =0
 Returns value for given sample, needs to be implemented by derived class. More...
 

Protected Attributes

Data m_data
 Data structure for primary data, exposed for derived classes for quick access. More...
 

Additional Inherited Members

- Public Types inherited from kanzi::AbstractProfilerSource
enum  DataType {
  DataTypeNotDefined, DataTypeBoolean, DataTypeUint64, DataTypeFloat,
  DataTypeString
}
 Supported profiling value types. More...
 
typedef variant< monostate, bool, uint64_t, float, string > Value
 Container for profiling value. More...
 
typedef vector< string > FieldNameContainer
 Container for data structure field names. More...
 
typedef FieldNameContainer::const_iterator FieldNameConstIterator
 Iterator for field names. More...
 
- Static Public Member Functions inherited from kanzi::AbstractProfilerSource
static DataType getDataType (const Value &value)
 Allows to query the data type of the data value. More...
 

Detailed Description

template<class Data, class SampleData>
class kanzi::ValueProfilerSource< Data, SampleData >

Value source template base class for any data and sample structures.

Constructor & Destructor Documentation

template<class Data, class SampleData>
kanzi::ValueProfilerSource< Data, SampleData >::ValueProfilerSource ( string_view  name,
string_view  category,
const FieldNameContainer fields,
const FieldNameContainer sampleFields,
size_t  sampleBufferSize 
)
inlineexplicit

Constructor.

Parameters
nameName of this source.
nameCategory of this source.
fieldsField names that reflect and describe the inner data structure for profiling data.
fieldsField names that reflect and describe the inner data structure for sample (per invocation) data.
sampleBufferSizeSize of the ring buffer that is used to store the sample (per invocation) data.

Member Function Documentation

template<class Data, class SampleData>
const SampleData& kanzi::ValueProfilerSource< Data, SampleData >::getSample ( size_t  index) const
inlineprotected

Returns sample data in given index.

Parameters
indexIndex of the sample, 0 being the oldest sample present in the buffer.
Returns
Data for sample in given index.
template<class Data, class SampleData>
void kanzi::ValueProfilerSource< Data, SampleData >::addSample ( SampleData  sample)
inlineprotected

Stores sample to sample buffer.

Parameters
sampleSample data to store.
template<class Data, class SampleData>
virtual size_t kanzi::ValueProfilerSource< Data, SampleData >::getSampleCountOverride ( ) const
inlineprotectedvirtual

Returns the amount of samples that have been collected, needs to be implemented by derived class.

Returns
Number of samples present in the sample buffer.

Implements kanzi::AbstractProfilerSource.

Member Data Documentation

template<class Data, class SampleData>
Data kanzi::ValueProfilerSource< Data, SampleData >::m_data
protected

Data structure for primary data, exposed for derived classes for quick access.


The documentation for this class was generated from the following file: