11 #ifndef __PCP_CPP_METRIC_DESCRIPTION_HPP__ 12 #define __PCP_CPP_METRIC_DESCRIPTION_HPP__ 21 PCP_CPP_BEGIN_NAMESPACE
25 class instance_domain;
49 static_cast<int>(a) | static_cast<int>(b)
85 const std::string &short_description = std::string(),
86 const std::string &verbose_description = std::string(),
87 void *
const opaque = NULL,
89 : metric_name(metric_name),
94 short_description(short_description),
95 verbose_description(verbose_description),
110 inline operator pmDesc()
const 113 description.indom = PM_INDOM_NULL;
114 description.pmid = 0;
116 description.type =
type;
117 description.units =
units;
137 const std::string &name)
183 const std::string &metric_name,
186 const pmUnits &units,
187 const metric_flags flags = static_cast<metric_flags>(0),
189 const std::string &short_description = std::string(),
190 const std::string &verbose_description = std::string(),
191 void *
const opaque = NULL)
194 units, domain, short_description, verbose_description, opaque, flags)));
217 const std::string &metric_name,
220 const pmUnits &units,
222 const metric_flags flags = static_cast<metric_flags>(0),
223 const std::string &short_description = std::string(),
224 const std::string &verbose_description = std::string(),
225 void *
const opaque = NULL)
228 units, domain, short_description, verbose_description, opaque, flags)));
251 const std::string &metric_name,
254 const pmUnits &units,
256 const std::string &short_description = std::string(),
257 const std::string &verbose_description = std::string(),
258 void *
const opaque = NULL,
259 const metric_flags flags = static_cast<metric_flags>(0))
262 units, domain, short_description, verbose_description, opaque, flags)));
268 const std::string cluster_name;
287 most_recent_cluster(end())
306 const std::string &cluster_name = std::string())
308 most_recent_cluster = insert(value_type(cluster_id,
339 const std::string &metric_name,
342 const pmUnits &units,
345 const std::string &short_description = std::string(),
346 const std::string &verbose_description = std::string(),
347 void *
const opaque = NULL)
349 if (most_recent_cluster == end()) {
350 throw pcp::exception(PM_ERR_GENERIC,
"no cluster to add metric to");
352 most_recent_cluster->second(item_id, metric_name, type, semantic,
353 units, domain, short_description,
354 verbose_description, opaque, flags);
384 const std::string &metric_name,
387 const pmUnits &units,
390 const std::string &short_description = std::string(),
391 const std::string &verbose_description = std::string(),
392 void *
const opaque = NULL)
394 if (most_recent_cluster == end()) {
395 throw pcp::exception(PM_ERR_GENERIC,
"no cluster to add metric to");
397 most_recent_cluster->second(item_id, metric_name, type, semantic,
398 units, domain, short_description,
399 verbose_description, opaque, flags);
429 const std::string &metric_name,
432 const pmUnits &units,
434 const std::string &short_description = std::string(),
435 const std::string &verbose_description = std::string(),
436 void *
const opaque = NULL,
437 const metric_flags flags = static_cast<metric_flags>(0))
439 if (most_recent_cluster == end()) {
440 throw pcp::exception(PM_ERR_GENERIC,
"no cluster to add metric to");
442 most_recent_cluster->second(item_id, metric_name, type, semantic,
443 units, domain, short_description,
444 verbose_description, opaque, flags);
449 iterator most_recent_cluster;
454 PCP_CPP_END_NAMESPACE
cluster_id_type get_cluster_id() const
Get this cluster's ID.
uint_fast8_t semantic_type
PM_SEM_* (0 - 4)
metrics_description & operator()(const item_id_type item_id, const std::string &metric_name, const atom_type_type type, const semantic_type semantic, const pmUnits &units, instance_domain *const domain=NULL, const std::string &short_description=std::string(), const std::string &verbose_description=std::string(), void *const opaque=NULL, const metric_flags flags=static_cast< metric_flags >(0))
Metric description insertion functor.
std::string get_cluster_name() const
Get this cluster's name.
metrics_description & operator()(const item_id_type item_id, const std::string &metric_name, const atom_type_type type, const semantic_type semantic, const pmUnits &units, const metric_flags flags, instance_domain *const domain=NULL, const std::string &short_description=std::string(), const std::string &verbose_description=std::string(), void *const opaque=NULL)
Metric description insertion functor.
std::string metric_name
This metric's name.
metrics_description & operator()(const item_id_type item_id, const std::string &metric_name, const atom_type_type type, const semantic_type semantic, const pmUnits &units, instance_domain *const domain, const metric_flags flags, const std::string &short_description=std::string(), const std::string &verbose_description=std::string(), void *const opaque=NULL)
Metric description insertion functor.
metric_flags operator|(metric_flags a, metric_flags b)
Pipe operator for combining metric_flags values.
A cluster of metric descriptions.
Individual metric description.
metric_flags flags
Optional flags for this metric.
uint_fast8_t atom_type_type
PM_TYPE_* (0 - 9)
void *const opaque
Opaque value to track with this metric.
Sets up common PMDA++ library macros.
Declares various types used throughout the PMDA++ library.
metric_flags
Flags that may be applied to metric descriptions.
metric_cluster & operator()(const item_id_type item_id, const std::string &metric_name, const atom_type_type type, const semantic_type semantic, const pmUnits &units, const metric_flags flags=static_cast< metric_flags >(0), instance_domain *const domain=NULL, const std::string &short_description=std::string(), const std::string &verbose_description=std::string(), void *const opaque=NULL)
Metric insertion functor.
std::string verbose_description
This metric's verbose description.
Base class for all PMDA++ exceptions.
Metric supports pmstore operations.
metric_description(const std::string &metric_name, const atom_type_type type, const semantic_type semantic, const pmUnits &units, instance_domain *const domain=NULL, const std::string &short_description=std::string(), const std::string &verbose_description=std::string(), void *const opaque=NULL, const metric_flags flags=static_cast< metric_flags >(0))
Constructor.
metric_cluster & operator()(const item_id_type item_id, const std::string &metric_name, const atom_type_type type, const semantic_type semantic, const pmUnits &units, instance_domain *const domain=NULL, const std::string &short_description=std::string(), const std::string &verbose_description=std::string(), void *const opaque=NULL, const metric_flags flags=static_cast< metric_flags >(0))
Metric insertion functor.
instance_domain * domain
Optional instance domain for this metric.
metric_cluster(const cluster_id_type id, const std::string &name)
Constructor.
atom_type_type type
This metric's atom type.
Performance metric instance domain.
metric_cluster & operator()(const item_id_type item_id, const std::string &metric_name, const atom_type_type type, const semantic_type semantic, const pmUnits &units, instance_domain *const domain, const metric_flags flags=static_cast< metric_flags >(0), const std::string &short_description=std::string(), const std::string &verbose_description=std::string(), void *const opaque=NULL)
Metric insertion functor.
metrics_description & operator()(const cluster_id_type cluster_id, const std::string &cluster_name=std::string())
Cluster insertion functor.
uint_fast16_t item_id_type
__pmID_int::item (10-bits)
std::string short_description
This metric's short description.
metrics_description()
Default constructor.
Defines the pcp::exception class.
Collection of clusters of metric descriptions.
pmUnits units
This metric's PCP units.
uint_fast16_t cluster_id_type
__pmID_int::cluster (12-bits)
semantic_type semantic
This metric's PCP semantic.