From e1a678feb2deddeab5a78be77e16f3cdf0a614a9 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 28 Nov 2016 21:16:26 +0100 Subject: Loosen up the metrics stuff further. --- metrics/src/vespa/metrics/metricmanager.h | 16 +-------------- metrics/src/vespa/metrics/metrics.h | 1 - metrics/src/vespa/metrics/state_api_adapter.cpp | 1 + metrics/src/vespa/metrics/state_api_adapter.h | 3 ++- metrics/src/vespa/metrics/updatehook.h | 27 +++++++++++++++++++++++++ 5 files changed, 31 insertions(+), 17 deletions(-) create mode 100644 metrics/src/vespa/metrics/updatehook.h (limited to 'metrics/src') diff --git a/metrics/src/vespa/metrics/metricmanager.h b/metrics/src/vespa/metrics/metricmanager.h index ffa73c5eff1..28e03b01aff 100644 --- a/metrics/src/vespa/metrics/metricmanager.h +++ b/metrics/src/vespa/metrics/metricmanager.h @@ -50,6 +50,7 @@ #include #include #include +#include #include #include #include @@ -64,21 +65,6 @@ typedef vespalib::MonitorGuard MetricLockGuard; class MetricManager : private document::Runnable { public: - class UpdateHook { - const char* _name; - time_t _nextCall; - uint32_t _period; - friend class MetricManager; - - public: - typedef vespalib::LinkedPtr LP; - using MetricLockGuard = metrics::MetricLockGuard; - - UpdateHook(const char* name) : _name(name), _nextCall(0), _period(0) {} - virtual ~UpdateHook() {} - virtual void updateMetrics(const MetricLockGuard & guard) = 0; - const char* getName() const { return _name; } - }; struct Timer { virtual ~Timer() {} diff --git a/metrics/src/vespa/metrics/metrics.h b/metrics/src/vespa/metrics/metrics.h index 4b21dfb8579..db18bbefdbf 100644 --- a/metrics/src/vespa/metrics/metrics.h +++ b/metrics/src/vespa/metrics/metrics.h @@ -11,7 +11,6 @@ #include #include #include -#include #include #include diff --git a/metrics/src/vespa/metrics/state_api_adapter.cpp b/metrics/src/vespa/metrics/state_api_adapter.cpp index 606f57a87fe..28e0e277af7 100644 --- a/metrics/src/vespa/metrics/state_api_adapter.cpp +++ b/metrics/src/vespa/metrics/state_api_adapter.cpp @@ -1,5 +1,6 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "state_api_adapter.h" +#include #include "jsonwriter.h" namespace metrics { diff --git a/metrics/src/vespa/metrics/state_api_adapter.h b/metrics/src/vespa/metrics/state_api_adapter.h index dd041a3c37c..df3175dd614 100644 --- a/metrics/src/vespa/metrics/state_api_adapter.h +++ b/metrics/src/vespa/metrics/state_api_adapter.h @@ -3,10 +3,11 @@ #pragma once #include -#include "metricmanager.h" namespace metrics { +class MetricManager; + /** * This is an adapter class that implements the metrics producer * interface defined by the state api implementation in vespalib by diff --git a/metrics/src/vespa/metrics/updatehook.h b/metrics/src/vespa/metrics/updatehook.h new file mode 100644 index 00000000000..2b2f4466b54 --- /dev/null +++ b/metrics/src/vespa/metrics/updatehook.h @@ -0,0 +1,27 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#pragma once + +#include +#include + +namespace metrics { + +class MetricManager; + +class UpdateHook { + const char* _name; + time_t _nextCall; + uint32_t _period; + friend class MetricManager; + +public: + typedef vespalib::LinkedPtr LP; + using MetricLockGuard = vespalib::MonitorGuard; + + UpdateHook(const char* name) : _name(name), _nextCall(0), _period(0) {} + virtual ~UpdateHook() {} + virtual void updateMetrics(const MetricLockGuard & guard) = 0; + const char* getName() const { return _name; } +}; + +} -- cgit v1.2.3