summaryrefslogtreecommitdiffstats
path: root/metrics
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-04-03 22:46:03 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-04-04 16:36:18 +0200
commit37cfa9ab6b103ae733a783cde18c8384e0ace507 (patch)
tree99b4ec1964a7a392b4aec133c4b20a4a40ab0002 /metrics
parent5a48a81c4134bae524aa66e1e49624f678c8b6ce (diff)
Override
Diffstat (limited to 'metrics')
-rw-r--r--metrics/src/vespa/metrics/countmetric.h61
-rw-r--r--metrics/src/vespa/metrics/jsonwriter.h16
-rw-r--r--metrics/src/vespa/metrics/memoryconsumption.h2
-rw-r--r--metrics/src/vespa/metrics/metric.h4
-rw-r--r--metrics/src/vespa/metrics/metricmanager.cpp24
-rw-r--r--metrics/src/vespa/metrics/metricmanager.h2
-rw-r--r--metrics/src/vespa/metrics/metricset.cpp6
-rw-r--r--metrics/src/vespa/metrics/metricset.h29
-rw-r--r--metrics/src/vespa/metrics/printutils.h6
-rw-r--r--metrics/src/vespa/metrics/summetric.h30
-rw-r--r--metrics/src/vespa/metrics/valuemetric.h82
-rw-r--r--metrics/src/vespa/metrics/xmlwriter.h14
12 files changed, 127 insertions, 149 deletions
diff --git a/metrics/src/vespa/metrics/countmetric.h b/metrics/src/vespa/metrics/countmetric.h
index 76eb166ef9a..a72a229b8b8 100644
--- a/metrics/src/vespa/metrics/countmetric.h
+++ b/metrics/src/vespa/metrics/countmetric.h
@@ -13,13 +13,13 @@
#pragma once
-#include <vespa/metrics/metric.h>
#include "countmetricvalues.h"
+#include <vespa/metrics/metric.h>
namespace metrics {
struct AbstractCountMetric : public Metric {
- virtual bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const
+ bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const override
{
return visitor.visitCountMetric(*this, tagAsAutoGenerated);
}
@@ -70,8 +70,9 @@ public:
~CountMetric();
- virtual MetricValueClass::UP getValues() const
- { return MetricValueClass::UP(new Values(_values.getValues())); }
+ MetricValueClass::UP getValues() const override {
+ return MetricValueClass::UP(new Values(_values.getValues()));
+ }
void logOnlyIfSet() { _values.removeFlag(LOG_IF_UNSET); }
void set(T value);
@@ -92,40 +93,42 @@ public:
CountMetric t(a); t -= b; return t;
}
- virtual CountMetric * clone(
- std::vector<Metric::UP> &, CopyType type, MetricSet* owner,
- bool /*includeUnused*/) const
- { return new CountMetric<T, SumOnAdd>(*this, type, owner); }
- T getValue() const { return _values.getValues()._value; }
- void reset() {
- _values.reset();
+ CountMetric * clone(std::vector<Metric::UP> &, CopyType type, MetricSet* owner,
+ bool /*includeUnused*/) const override {
+ return new CountMetric<T, SumOnAdd>(*this, type, owner);
}
- virtual bool logFromTotalMetrics() const { return true; }
- virtual bool logEvent(const String& fullName) const;
+ T getValue() const { return _values.getValues()._value; }
- virtual void print(std::ostream&, bool verbose,
- const std::string& indent, uint64_t secondsPassed) const;
+ void reset() override { _values.reset(); }
- // Only one metric in valuemetric, so return it on any id.
- virtual int64_t getLongValue(const stringref & id) const
- { (void) id; return static_cast<int64_t>(getValue()); }
- virtual double getDoubleValue(const stringref & id) const
- { (void) id; return static_cast<double>(getValue()); }
+ bool logFromTotalMetrics() const override { return true; }
+ bool logEvent(const String& fullName) const override;
- virtual bool inUse(const MetricValueClass& v) const
- { return static_cast<const Values&>(v).inUse(); }
- virtual bool used() const { return _values.getValues().inUse(); }
- virtual bool sumOnAdd() const { return SumOnAdd; }
+ void print(std::ostream&, bool verbose,
+ const std::string& indent, uint64_t secondsPassed) const override;
- virtual void addMemoryUsage(MemoryConsumption&) const;
-
- virtual void printDebug(std::ostream&, const std::string& indent) const;
+ // Only one metric in valuemetric, so return it on any id.
+ int64_t getLongValue(const stringref & id) const override {
+ (void) id;
+ return static_cast<int64_t>(getValue());
+ }
+ double getDoubleValue(const stringref & id) const override {
+ (void) id;
+ return static_cast<double>(getValue());
+ }
- virtual void addToPart(Metric&) const;
- virtual void addToSnapshot(Metric&, std::vector<Metric::UP> &) const;
+ bool inUse(const MetricValueClass& v) const override {
+ return static_cast<const Values&>(v).inUse();
+ }
+ bool used() const override { return _values.getValues().inUse(); }
+ bool sumOnAdd() const override { return SumOnAdd; }
+ void addMemoryUsage(MemoryConsumption&) const override;
+ void printDebug(std::ostream&, const std::string& indent) const override;
+ void addToPart(Metric&) const override;
+ void addToSnapshot(Metric&, std::vector<Metric::UP> &) const override;
};
typedef CountMetric<uint64_t, true> LongCountMetric;
diff --git a/metrics/src/vespa/metrics/jsonwriter.h b/metrics/src/vespa/metrics/jsonwriter.h
index 37de3c0c0b1..43f19ffd268 100644
--- a/metrics/src/vespa/metrics/jsonwriter.h
+++ b/metrics/src/vespa/metrics/jsonwriter.h
@@ -21,15 +21,13 @@ public:
JsonWriter(vespalib::JsonStream&);
private:
- virtual bool visitSnapshot(const MetricSnapshot&);
- virtual void doneVisitingSnapshot(const MetricSnapshot&);
- virtual bool visitMetricSet(const MetricSet&, bool autoGenerated);
- virtual void doneVisitingMetricSet(const MetricSet&);
- virtual bool visitCountMetric(const AbstractCountMetric&,
- bool autoGenerated);
- virtual bool visitValueMetric(const AbstractValueMetric&,
- bool autoGenerated);
- virtual void doneVisiting();
+ bool visitSnapshot(const MetricSnapshot&) override;
+ void doneVisitingSnapshot(const MetricSnapshot&) override;
+ bool visitMetricSet(const MetricSet&, bool autoGenerated) override;
+ void doneVisitingMetricSet(const MetricSet&) override;
+ bool visitCountMetric(const AbstractCountMetric&, bool autoGenerated) override;
+ bool visitValueMetric(const AbstractValueMetric&, bool autoGenerated) override;
+ void doneVisiting() override;
void checkIfArrayNeedsToBeStarted();
void writeCommonPrefix(const Metric& m);
diff --git a/metrics/src/vespa/metrics/memoryconsumption.h b/metrics/src/vespa/metrics/memoryconsumption.h
index e964a7c0ca2..a456e9ae8e0 100644
--- a/metrics/src/vespa/metrics/memoryconsumption.h
+++ b/metrics/src/vespa/metrics/memoryconsumption.h
@@ -90,7 +90,7 @@ public:
void addSnapShotUsage(const std::string& name, uint32_t usage);
uint32_t getTotalMemoryUsage() const;
- virtual void print(std::ostream& out, bool verbose, const std::string& indent) const;
+ void print(std::ostream& out, bool verbose, const std::string& indent) const override;
static std::string bval(uint32_t bytes);
private:
diff --git a/metrics/src/vespa/metrics/metric.h b/metrics/src/vespa/metrics/metric.h
index c45920cfda4..a494b65127c 100644
--- a/metrics/src/vespa/metrics/metric.h
+++ b/metrics/src/vespa/metrics/metric.h
@@ -160,8 +160,8 @@ public:
/** Implement to make metric able to log event. */
virtual bool logEvent(const String& fullName) const = 0;
- virtual void print(std::ostream& out, bool verbose,
- const std::string& indent) const {
+ void print(std::ostream& out, bool verbose,
+ const std::string& indent) const override {
print(out, verbose, indent, 0);
}
virtual void print(std::ostream&, bool verbose, const std::string& indent,
diff --git a/metrics/src/vespa/metrics/metricmanager.cpp b/metrics/src/vespa/metrics/metricmanager.cpp
index 13d7443d2bb..572779be855 100644
--- a/metrics/src/vespa/metrics/metricmanager.cpp
+++ b/metrics/src/vespa/metrics/metricmanager.cpp
@@ -269,8 +269,8 @@ namespace {
return false;
}
- virtual bool visitMetricSet(const MetricSet& metricSet,
- bool autoGenerated)
+ bool visitMetricSet(const MetricSet& metricSet,
+ bool autoGenerated) override
{
(void) autoGenerated;
result.push_back(Result());
@@ -290,14 +290,14 @@ namespace {
}
return true;
}
- virtual void doneVisitingMetricSet(const MetricSet& metricSet) {
+ void doneVisitingMetricSet(const MetricSet& metricSet) override {
if (result.back().metricCount > 0 && result.size() != 1) {
LOG(spam, "Adding metricset %s", metricSet.getPath().c_str());
_matchedMetrics.includedMetrics.insert(metricSet.getPath());
}
result.pop_back();
}
- bool visitMetric(const Metric& metric, bool autoGenerated) {
+ bool visitMetric(const Metric& metric, bool autoGenerated) override {
(void) autoGenerated;
if (result.back().nameRemoved || nameRemoved(metric)) return true;
bool nAdded = (result.back().nameAdded || nameAdded(metric));
@@ -520,14 +520,14 @@ namespace {
MetricVisitor& clientVisitor)
: _metricsToMatch(spec), _client(clientVisitor) {}
- virtual bool visitMetricSet(const MetricSet& metricSet,
- bool autoGenerated)
+ bool visitMetricSet(const MetricSet& metricSet,
+ bool autoGenerated) override
{
if (metricSet.isTopSet()) return true;
return (_metricsToMatch.contains(metricSet)
&& _client.visitMetricSet(metricSet, autoGenerated));
}
- virtual void doneVisitingMetricSet(const MetricSet& metricSet) {
+ void doneVisitingMetricSet(const MetricSet& metricSet) override {
if (!metricSet.isTopSet()) {
#ifdef VERIFY_ALL_METRICS_VISITED
_visitedMetrics.insert(metricSet.getPath());
@@ -535,8 +535,8 @@ namespace {
_client.doneVisitingMetricSet(metricSet);
}
}
- virtual bool visitCountMetric(const AbstractCountMetric& metric,
- bool autoGenerated)
+ bool visitCountMetric(const AbstractCountMetric& metric,
+ bool autoGenerated) override
{
if (_metricsToMatch.contains(metric)) {
#ifdef VERIFY_ALL_METRICS_VISITED
@@ -546,8 +546,8 @@ namespace {
}
return true;
}
- virtual bool visitValueMetric(const AbstractValueMetric& metric,
- bool autoGenerated)
+ bool visitValueMetric(const AbstractValueMetric& metric,
+ bool autoGenerated) override
{
if (_metricsToMatch.contains(metric)) {
#ifdef VERIFY_ALL_METRICS_VISITED
@@ -746,7 +746,7 @@ namespace {
LogMetricVisitor(bool totalVals) : _total(totalVals) {}
- bool visitMetric(const Metric& metric, bool autoGenerated) {
+ bool visitMetric(const Metric& metric, bool autoGenerated) override {
(void) autoGenerated;
if (metric.logFromTotalMetrics() ^ _total) return true;
Metric::String logName = metric.getPath();
diff --git a/metrics/src/vespa/metrics/metricmanager.h b/metrics/src/vespa/metrics/metricmanager.h
index 138a4b0c06f..58a8fd4c45a 100644
--- a/metrics/src/vespa/metrics/metricmanager.h
+++ b/metrics/src/vespa/metrics/metricmanager.h
@@ -92,7 +92,7 @@ public:
}
void print(std::ostream& out, bool verbose,
- const std::string& indent) const;
+ const std::string& indent) const override;
void addMemoryUsage(MemoryConsumption&) const;
};
diff --git a/metrics/src/vespa/metrics/metricset.cpp b/metrics/src/vespa/metrics/metricset.cpp
index 201b7c296e2..15ee22ba1f2 100644
--- a/metrics/src/vespa/metrics/metricset.cpp
+++ b/metrics/src/vespa/metrics/metricset.cpp
@@ -99,14 +99,12 @@ namespace {
struct MetricSetFinder : public MetricVisitor {
std::list<MetricSet*> _metricSets;
- virtual bool visitMetricSet(const MetricSet& set, bool autoGenerated)
- {
+ bool visitMetricSet(const MetricSet& set, bool autoGenerated) override {
if (autoGenerated) return false;
_metricSets.push_back(const_cast<MetricSet*>(&set));
return true;
}
- virtual bool visitMetric(const Metric&, bool autoGenerated)
- {
+ bool visitMetric(const Metric&, bool autoGenerated) override {
(void) autoGenerated;
return true;
}
diff --git a/metrics/src/vespa/metrics/metricset.h b/metrics/src/vespa/metrics/metricset.h
index b7c012af277..f96ba5085b0 100644
--- a/metrics/src/vespa/metrics/metricset.h
+++ b/metrics/src/vespa/metrics/metricset.h
@@ -56,7 +56,7 @@ public:
MetricSet* clone(std::vector<Metric::UP> &ownerList, CopyType type,
MetricSet* owner, bool includeUnused = false) const override;
- void reset();
+ void reset() override;
bool visit(MetricVisitor&, bool tagAsAutoGenerated = false) const override;
@@ -65,9 +65,9 @@ public:
void print(std::ostream&, bool verbose, const std::string& indent, uint64_t secondsPassed) const override;
// These should never be called on metrics set.
- virtual int64_t getLongValue(const stringref & id) const
+ int64_t getLongValue(const stringref & id) const override
{ (void) id; assert(false); return 0; }
- virtual double getDoubleValue(const stringref & id) const
+ double getDoubleValue(const stringref & id) const override
{ (void) id; assert(false); return 0; }
const Metric* getMetric(const String& name) const;
@@ -76,25 +76,18 @@ public:
const_cast<const MetricSet*>(this)->getMetric(name));
}
- virtual void addToSnapshot(Metric& m, std::vector<Metric::UP> &o) const
- { addTo(m, &o); }
+ void addToSnapshot(Metric& m, std::vector<Metric::UP> &o) const override { addTo(m, &o); }
- const std::vector<Metric*>& getRegisteredMetrics() const
- { return _metricOrder; }
+ const std::vector<Metric*>& getRegisteredMetrics() const { return _metricOrder; }
- virtual bool used() const;
-
- virtual void addMemoryUsage(MemoryConsumption&) const;
+ bool used() const override;
+ void addMemoryUsage(MemoryConsumption&) const override;
/** Update names using the given name hash, to utilize ref counting. */
- virtual void updateNames(NameHash&) const;
-
- virtual void printDebug(std::ostream&, const std::string& indent="") const;
-
- virtual bool isMetricSet() const { return true; }
-
- virtual void addToPart(Metric& m) const
- { addTo(m, 0); }
+ void updateNames(NameHash&) const override;
+ void printDebug(std::ostream&, const std::string& indent="") const override;
+ bool isMetricSet() const override { return true; }
+ void addToPart(Metric& m) const override { addTo(m, 0); }
/**
* Returns the key of the dimension this metric is part of (if any).
diff --git a/metrics/src/vespa/metrics/printutils.h b/metrics/src/vespa/metrics/printutils.h
index 17562e7e064..93f7264c245 100644
--- a/metrics/src/vespa/metrics/printutils.h
+++ b/metrics/src/vespa/metrics/printutils.h
@@ -49,9 +49,9 @@ struct MetricSource {
void checkForPrefixMatch(const Metric& metric);
- bool visitMetricSet(const MetricSet& set, bool);
- void doneVisitingMetricSet(const MetricSet&) { --_pathIndex; }
- bool visitMetric(const Metric& metric, bool);
+ bool visitMetricSet(const MetricSet& set, bool) override;
+ void doneVisitingMetricSet(const MetricSet&) override { --_pathIndex; }
+ bool visitMetric(const Metric& metric, bool) override;
};
const Metric* getMetric(const String& name);
diff --git a/metrics/src/vespa/metrics/summetric.h b/metrics/src/vespa/metrics/summetric.h
index 32444b3a75d..04ae1454a50 100644
--- a/metrics/src/vespa/metrics/summetric.h
+++ b/metrics/src/vespa/metrics/summetric.h
@@ -59,25 +59,17 @@ public:
void addMetricToSum(const AddendMetric&);
void removeMetricFromSum(const AddendMetric&);
- virtual bool logEvent(const String& fullName) const;
-
- virtual void print(std::ostream&, bool verbose, const std::string& indent, uint64_t secondsPassed) const;
-
- virtual int64_t getLongValue(const stringref & id) const;
- virtual double getDoubleValue(const stringref & id) const;
-
- virtual void reset() {}
-
- virtual bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const;
-
- virtual bool used() const;
-
- virtual void addMemoryUsage(MemoryConsumption&) const;
-
- virtual void printDebug(std::ostream&, const std::string& indent="") const;
-
- virtual void addToPart(Metric&) const;
- virtual void addToSnapshot(Metric&, std::vector<Metric::UP> &) const;
+ bool logEvent(const String& fullName) const override;
+ void print(std::ostream&, bool verbose, const std::string& indent, uint64_t secondsPassed) const override;
+ int64_t getLongValue(const stringref & id) const override;
+ double getDoubleValue(const stringref & id) const override;
+ void reset() override {}
+ bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const override;
+ bool used() const override;
+ void addMemoryUsage(MemoryConsumption&) const override;
+ void printDebug(std::ostream&, const std::string& indent="") const override;
+ void addToPart(Metric&) const override;
+ void addToSnapshot(Metric&, std::vector<Metric::UP> &) const override;
private:
friend class MetricManagerTest;
diff --git a/metrics/src/vespa/metrics/valuemetric.h b/metrics/src/vespa/metrics/valuemetric.h
index 8c02857bcd7..56bed68c6f3 100644
--- a/metrics/src/vespa/metrics/valuemetric.h
+++ b/metrics/src/vespa/metrics/valuemetric.h
@@ -20,9 +20,7 @@
namespace metrics {
struct AbstractValueMetric : public Metric {
- virtual bool visit(MetricVisitor& visitor,
- bool tagAsAutoGenerated = false) const
- {
+ bool visit(MetricVisitor& visitor, bool tagAsAutoGenerated = false) const override {
return visitor.visitValueMetric(*this, tagAsAutoGenerated);
}
virtual MetricValueClass::UP getValues() const = 0;
@@ -47,23 +45,25 @@ protected:
};
template<typename AvgVal, typename TotVal, bool SumOnAdd>
-class ValueMetric : public AbstractValueMetric
-{
+class ValueMetric : public AbstractValueMetric {
using String = Metric::String; // Redefine so template finds it easy
using Values = ValueMetricValues<AvgVal, TotVal>;
MetricValueSet<Values> _values;
- enum Flag { SUMMED_AVERAGE = 2, UNSET_ON_ZERO_VALUE = 4, LOG_IF_UNSET = 8 };
+ enum Flag {
+ SUMMED_AVERAGE = 2, UNSET_ON_ZERO_VALUE = 4, LOG_IF_UNSET = 8
+ };
+
+ bool summedAverage() const override { return _values.hasFlag(SUMMED_AVERAGE); }
+
+ bool unsetOnZeroValue() const { return _values.hasFlag(UNSET_ON_ZERO_VALUE); }
- virtual bool summedAverage() const
- { return _values.hasFlag(SUMMED_AVERAGE); }
- bool unsetOnZeroValue() const
- { return _values.hasFlag(UNSET_ON_ZERO_VALUE); }
bool logIfUnset() const { return _values.hasFlag(LOG_IF_UNSET); }
- void add(const Values& values, bool sumOnAdd);
- void dec(const Values& values);
+ void add(const Values &values, bool sumOnAdd);
+
+ void dec(const Values &values);
void addValueWithCount(AvgVal avg, TotVal tot, uint32_t count);
@@ -76,30 +76,33 @@ class ValueMetric : public AbstractValueMetric
}
return true;
}
+
bool checkFinite(AvgVal, std::false_type) { return true; }
public:
- ValueMetric(const String& name, const String& tags,
- const String& description, MetricSet* owner = 0);
+ ValueMetric(const String &name, const String &tags,
+ const String &description, MetricSet *owner = 0);
- ValueMetric(const ValueMetric<AvgVal, TotVal, SumOnAdd>&,
- CopyType, MetricSet* owner);
+ ValueMetric(const ValueMetric<AvgVal, TotVal, SumOnAdd> &,
+ CopyType, MetricSet *owner);
- ValueMetric(const String& name, Tags dimensions,
- const String& description, MetricSet* owner = 0);
+ ValueMetric(const String &name, Tags dimensions,
+ const String &description, MetricSet *owner = 0);
~ValueMetric();
- virtual MetricValueClass::UP getValues() const
- { return MetricValueClass::UP(new Values(_values.getValues())); }
+ MetricValueClass::UP getValues() const override {
+ return MetricValueClass::UP(new Values(_values.getValues()));
+ }
void unsetOnZeroValue() { _values.setFlag(UNSET_ON_ZERO_VALUE); }
+
void logOnlyIfSet() { _values.removeFlag(LOG_IF_UNSET); }
- virtual ValueMetric * clone(
- std::vector<Metric::UP> &, CopyType type, MetricSet* owner,
- bool /*includeUnused*/) const
- { return new ValueMetric<AvgVal,TotVal,SumOnAdd>(*this, type, owner); }
+ ValueMetric *clone(std::vector<Metric::UP> &, CopyType type, MetricSet *owner,
+ bool /*includeUnused*/) const override {
+ return new ValueMetric<AvgVal,TotVal,SumOnAdd>(*this, type, owner);
+ }
ValueMetric & operator+=(const ValueMetric &);
@@ -125,32 +128,25 @@ public:
AvgVal getCount() const { return _values.getValues()._count; }
AvgVal getLast() const { return _values.getValues()._last; }
- void reset() { _values.reset(); }
+ void reset() override { _values.reset(); }
+ bool logEvent(const String& fullName) const override;
- virtual bool logEvent(const String& fullName) const;
+ void print(std::ostream&, bool verbose,
+ const std::string& indent, uint64_t secondsPassed) const override;
- virtual void print(std::ostream&, bool verbose,
- const std::string& indent, uint64_t secondsPassed) const;
+ int64_t getLongValue(const stringref & id) const override;
+ double getDoubleValue(const stringref & id) const override;
- virtual int64_t getLongValue(const stringref & id) const;
- virtual double getDoubleValue(const stringref & id) const;
-
-
- virtual bool inUse(const MetricValueClass& v) const {
+ bool inUse(const MetricValueClass& v) const override {
const Values& values(static_cast<const Values&>(v));
return (values._total != 0
|| (values._count != 0 && !unsetOnZeroValue()));
}
- virtual bool used() const {
- return inUse(_values.getValues());
- }
-
- virtual void addMemoryUsage(MemoryConsumption&) const;
-
- virtual void printDebug(std::ostream&, const std::string& indent) const;
-
- virtual void addToPart(Metric&) const;
- virtual void addToSnapshot(Metric&, std::vector<Metric::UP> &) const;
+ bool used() const override { return inUse(_values.getValues()); }
+ void addMemoryUsage(MemoryConsumption&) const override;
+ void printDebug(std::ostream&, const std::string& indent) const override;
+ void addToPart(Metric&) const override;
+ void addToSnapshot(Metric&, std::vector<Metric::UP> &) const override;
};
typedef ValueMetric<double, double, true> DoubleValueMetric;
diff --git a/metrics/src/vespa/metrics/xmlwriter.h b/metrics/src/vespa/metrics/xmlwriter.h
index c55ed82f093..c937d36ccf1 100644
--- a/metrics/src/vespa/metrics/xmlwriter.h
+++ b/metrics/src/vespa/metrics/xmlwriter.h
@@ -16,14 +16,12 @@ public:
XmlWriter(vespalib::xml::XmlOutputStream& xos,
uint32_t period, int verbosity);
- virtual bool visitSnapshot(const MetricSnapshot&);
- virtual void doneVisitingSnapshot(const MetricSnapshot&);
- virtual bool visitMetricSet(const MetricSet& set, bool);
- virtual void doneVisitingMetricSet(const MetricSet&);
- virtual bool visitCountMetric(const AbstractCountMetric&,
- bool autoGenerated);
- virtual bool visitValueMetric(const AbstractValueMetric&,
- bool autoGenerated);
+ bool visitSnapshot(const MetricSnapshot&) override;
+ void doneVisitingSnapshot(const MetricSnapshot&) override;
+ bool visitMetricSet(const MetricSet& set, bool) override;
+ void doneVisitingMetricSet(const MetricSet&) override;
+ bool visitCountMetric(const AbstractCountMetric&, bool autoGenerated) override;
+ bool visitValueMetric(const AbstractValueMetric&, bool autoGenerated) override;
private:
void printCommonXmlParts(const Metric& metric) const;