diff options
author | Henning Baldersheim <balder@oath.com> | 2018-04-20 23:12:34 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-04-20 23:12:34 +0200 |
commit | 5f241b23e800b3c9ec6c2d195649a9f6a7c63b88 (patch) | |
tree | 3b1ba490f45995c192310230bf1843762a3485d0 | |
parent | 4e2a012563671d9b6857a17b0872e2a75fe153ac (diff) |
Avoid forward declaration as by including DocsumMetrics in definition.
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.cpp | 44 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/summaryengine/summaryengine.h | 18 |
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 |