summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-04-20 23:12:34 +0200
committerHenning Baldersheim <balder@oath.com>2018-04-20 23:12:34 +0200
commit5f241b23e800b3c9ec6c2d195649a9f6a7c63b88 (patch)
tree3b1ba490f45995c192310230bf1843762a3485d0
parent4e2a012563671d9b6857a17b0872e2a75fe153ac (diff)
Avoid forward declaration as by including DocsumMetrics in definition.
-rw-r--r--searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp44
-rw-r--r--searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h18
2 files changed, 26 insertions, 36 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
index a72b7fc36ac..498c8b914db 100644
--- a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
+++ b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp
@@ -1,8 +1,5 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "summaryengine.h"
-#include <vespa/metrics/valuemetric.h>
-#include <vespa/metrics/countmetric.h>
-#include <vespa/metrics/metricset.h>
#include <vespa/log/log.h>
LOG_SETUP(".proton.summaryengine.summaryengine");
@@ -33,37 +30,24 @@ public:
} // namespace anonymous
-namespace proton::internal {
-
-struct DocsumMetrics : metrics::MetricSet {
- metrics::LongCountMetric count;
- metrics::LongCountMetric docs;
- metrics::DoubleAverageMetric latency;
-
- DocsumMetrics();
- ~DocsumMetrics();
-};
+namespace proton {
-DocsumMetrics::DocsumMetrics()
- : metrics::MetricSet("docsum", "", "Docsum metrics", nullptr),
- count("count", "logdefault", "Docsum requests handled", this),
- docs("docs", "logdefault", "Total docsums returned", this),
- latency("latency", "logdefault", "Docsum request latency", this)
+SummaryEngine::DocsumMetrics::DocsumMetrics()
+ : metrics::MetricSet("docsum", "", "Docsum metrics", nullptr),
+ count("count", "logdefault", "Docsum requests handled", this),
+ docs("docs", "logdefault", "Total docsums returned", this),
+ latency("latency", "logdefault", "Docsum request latency", this)
{
}
-DocsumMetrics::~DocsumMetrics() = default;
-
-}
-
-namespace proton {
+SummaryEngine::DocsumMetrics::~DocsumMetrics() = default;
SummaryEngine::SummaryEngine(size_t numThreads)
: _lock(),
_closed(false),
_handlers(),
_executor(numThreads, 128 * 1024),
- _metrics(std::make_unique<internal::DocsumMetrics>())
+ _metrics(std::make_unique<DocsumMetrics>())
{ }
SummaryEngine::~SummaryEngine()
@@ -150,14 +134,10 @@ void
SummaryEngine::updateDocsumMetrics(double latency_s, uint32_t numDocs)
{
std::lock_guard guard(_lock);
- _metrics->count.inc();
- _metrics->docs.inc(numDocs);
- _metrics->latency.set(latency_s);
-}
-
-metrics::MetricSet &
-SummaryEngine::getMetrics() {
- return *_metrics;
+ DocsumMetrics & m = static_cast<DocsumMetrics &>(*_metrics);
+ m.count.inc();
+ m.docs.inc(numDocs);
+ m.latency.set(latency_s);
}
} // namespace proton
diff --git a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h
index da0e744d35a..029aefacfc8 100644
--- a/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h
+++ b/searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h
@@ -6,10 +6,11 @@
#include <vespa/searchcore/proton/common/handlermap.hpp>
#include <vespa/searchlib/engine/docsumapi.h>
#include <vespa/vespalib/util/threadstackexecutor.h>
+#include <vespa/metrics/valuemetric.h>
+#include <vespa/metrics/countmetric.h>
+#include <vespa/metrics/metricset.h>
#include <mutex>
-namespace metrics { class MetricSet; }
-namespace proton::internal { class DocsumMetrics; }
namespace proton {
@@ -21,11 +22,20 @@ private:
using DocsumRequest = search::engine::DocsumRequest;
using DocsumClient = search::engine::DocsumClient;
+ struct DocsumMetrics : metrics::MetricSet {
+ metrics::LongCountMetric count;
+ metrics::LongCountMetric docs;
+ metrics::DoubleAverageMetric latency;
+
+ DocsumMetrics();
+ ~DocsumMetrics();
+ };
+
std::mutex _lock;
bool _closed;
HandlerMap<ISearchHandler> _handlers;
vespalib::ThreadStackExecutor _executor;
- std::unique_ptr<internal::DocsumMetrics> _metrics;
+ std::unique_ptr<metrics::MetricSet> _metrics;
public:
SummaryEngine(const SummaryEngine &) = delete;
@@ -106,7 +116,7 @@ public:
*/
DocsumReply::UP getDocsums(DocsumRequest::UP req) override;
- metrics::MetricSet & getMetrics();
+ metrics::MetricSet & getMetrics() { return *_metrics; }
};
} // namespace proton