QmcGroup - container representing a single fetch group of metrics from multiple sources
Contents
C++ Synopsis
#include<QmcGroup.h>c++...-lpcp_qmc-lpcp
Constructors & Destructor
~QmcGroup();
Destructor which destroys all metrics and contexts created by this group.
QmcGroup(boolrestrictArchives=false);
Construct a new fetch group. restrictArchives will restrict the creating of multiple archive
contexts created from the same host.
Contexts
The default context of the group is defined as the first context created with QmcGroup::use before the
first call to QmcGroup::addMetric. If no context is created before the first metric is added, the
localhost is used as the default context. Therefore, if any metrics specifications contain archive
sources, an archive source must have been created with QmcGroup::use to avoid an error for mixing context
types.
uint_tnumContexts()const;
The number of valid contexts created in this group.
QmcContextconst&context(uint_tindex)const
Return a handle to a context.
QmcContext&context(uint_tindex);
Return a modifiable handle to a context.
intmode()const;
Return the type of context, either PM_CONTEXT_LOCAL, PM_CONTEXT_HOST or PM_CONTEXT_ARCHIVE.
QmcContext*which()const;
Return a handle to the current context of this group. This does not call pmUseContext(3) so it may
not be the current PMAPI(3) context.
uint_tcontextIndex()const
The index to the current group context.
intuse(inttype,charconst*source);
Use the context of type from source. If a context to this source already exists in this group, that
context will become the current PMAPI(3) context. Otherwise a new context will be created. The
result is the PMAPI(3) context handle for the QmcGroup::context or a PMAPI(3) error code if the
context failed.
booldefaultDefined()const;
Returns true if a default context has been determined.
intuseDefault();
Use the default context. If a default context has not been created, the context to the local host
will be attempted. A result less than zero indicates that the method failed with the PMAPI(3) error
encoded in the result.
voidcreateLocalContext();
Create and use a context to the local host. A result less than zero indicates that the method failed
with the PMAPI(3) error encoded in the result.
Debugging
voiddump(ostream&os);
Dump state information about this group to os.
Description
A QmcGroup object is a container for contexts and metrics that should be fetched at the same time. The
class manages the QmcContext(3) objects, timezones and bounds for every context created with
QmcGroup::use and QmcGroup::addMetric.
Diagnostics
Error messages are generated using pmprintf(3) but are not flushed. It is the responsibility of the user
to call pmflush(3) to output any messages.
Additional diagnostics may be activated by adding the option pmc to the global debugging specification,
as described in pmSetDebug(3).
Metrics
These addMetric methods should be used to create new metrics as the QmcMetric constructors are private.
These methods will always return a pointer to a QmcMetric object, however the QmcMetric::status() field
should be checked to ensure the metric is valid.
QmcMetric*addMetric(charconst*str,doubletheScale=0.0,boolactive=false);
Add the metric str to the group, with a scaling factor of scale. If active is set the metric will
use only active instances (see QmcMetric(3)).
QmcMetric*addMetric(pmMetricSpec*theMetric,doubletheScale=0.0,boolactive);
Add the metric theMetric to the group, with a scaling factor of scale. If active is set the metric
will use only active instances (see QmcMetric(3)).
intfetch(boolupdate=true);
Fetch all the metrics in all the contexts in this group. If update is equal to true, all counter
metrics will be automatically converted to rates (see QmcMetric(3)).
intsetArchiveMode(intmode,conststructtimeval*when,intinterval);
Set the mode and time to access all archive contexts in this group. See pmSetMode(3) for more
details.
Name
QmcGroup - container representing a single fetch group of metrics from multiple sources
See Also
PMAPI(3), QMC(3), QmcContext(3), QmcMetric(3), pmflush(3), pmprintf(3) and pmSetMode(3). Performance Co-Pilot SGI QMCGROUP(3)
Timezones
These methods assist in the management of multiple timezones and help to control the current timezone.
enumTimeZoneFlag{localTZ,userTZ,groupTZ,unknownTZ};
Enumeration used to describe the origin of the default timezone. localTZ, userTZ and groupTZ
indicate that the timezone was set with QmcGroup::useLocalTZ, QmcGroup::useTZ(QStringconst&) and
QmcGroup::useTZ() respectively. unknownTZ indicates that a timezone has not been set. userTZ
indicates that the timezone was
intuseTZ();
Use the timezone of the current group context as the default.
intuseTZ(constQString&tz);
Add and use tz as the default timezone of this group.
intuseLocalTZ();
Use the timezone of the localhost as the default for this group.
voiddefaultTZ(QString&label,QString&tz);
Return the label and tz string of the default timezone of this group.
TimeZoneFlagdefaultTZ()const
Return the origin of the default timezone.
intuseDefaultTZ();
Set the timezone to be the default timezone as defined in a previous call to QmcGroup::useTZ or
QmcGroup::useLocalTZ.
structtimevalconst&logStart()const;
Return the earliest starting time of any archives in this group. Assumes that QmcGroup::updateBounds
has been called.
structtimevalconst&logEnd()const;
Return the latest finish time of any archives in this group. Assumes that QmcGroup::updateBounds has
been called.
voidupdateBounds();
Determine the earliest start and latest finish times of all archives in this group.
