Module: check_mk
Branch: master
Commit: 030e8b1d4dcfcd3e9478a5c0019ee907f86249d4
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=030e8b1d4dcfcd…
Author: Sven Panne <sp(a)mathias-kettner.de>
Date: Mon Aug 8 13:33:37 2016 +0200
C++-ified global_counters.
---
livestatus/src/Makefile.am | 2 +-
.../src/{global_counters.c => global_counters.cc} | 15 ++++++------
livestatus/src/global_counters.h | 25 ++++----------------
3 files changed, 14 insertions(+), 28 deletions(-)
diff --git a/livestatus/src/Makefile.am b/livestatus/src/Makefile.am
index 9690b97..cb06b4e 100644
--- a/livestatus/src/Makefile.am
+++ b/livestatus/src/Makefile.am
@@ -143,7 +143,7 @@ livestatus_so_SOURCES = \
VariadicFilter.cc \
WorldNagios.cc \
auth.cc \
- global_counters.c \
+ global_counters.cc \
logger.c \
mk_inventory.cc \
mk_logwatch.cc \
diff --git a/livestatus/src/global_counters.c b/livestatus/src/global_counters.cc
similarity index 88%
rename from livestatus/src/global_counters.c
rename to livestatus/src/global_counters.cc
index b1c96f2..855fcd4 100644
--- a/livestatus/src/global_counters.c
+++ b/livestatus/src/global_counters.cc
@@ -22,9 +22,12 @@
// to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
// Boston, MA 02110-1301 USA.
-#define EXTERN /* */
#include "global_counters.h"
-#include <time.h>
+#include <ctime>
+
+uint64_t g_counters[NUM_COUNTERS];
+uint64_t g_last_counter[NUM_COUNTERS];
+double g_counter_rate[NUM_COUNTERS];
time_t last_statistics_update = 0;
#define STATISTICS_INTERVAL 5
@@ -33,8 +36,7 @@ time_t last_statistics_update = 0;
void do_statistics() {
if (last_statistics_update == 0) {
last_statistics_update = time(0);
- unsigned i;
- for (i = 0; i < NUM_COUNTERS; i++) {
+ for (unsigned i = 0; i < NUM_COUNTERS; i++) {
g_counters[i] = 0;
g_last_counter[i] = 0;
g_counter_rate[i] = 0.0;
@@ -45,9 +47,8 @@ void do_statistics() {
time_t delta_time = now - last_statistics_update;
if (delta_time >= STATISTICS_INTERVAL) {
last_statistics_update = now;
- unsigned i;
- for (i = 0; i < NUM_COUNTERS; i++) {
- counter_t delta_value = g_counters[i] - g_last_counter[i];
+ for (unsigned i = 0; i < NUM_COUNTERS; i++) {
+ auto delta_value = g_counters[i] - g_last_counter[i];
double new_rate = (double)delta_value / (double)delta_time;
double old_rate = g_counter_rate[i];
double avg_rate;
diff --git a/livestatus/src/global_counters.h b/livestatus/src/global_counters.h
index 290b1ed..2300d5b 100644
--- a/livestatus/src/global_counters.h
+++ b/livestatus/src/global_counters.h
@@ -26,18 +26,7 @@
#define global_counters_h
#include "config.h" // IWYU pragma: keep
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef EXTERN
-#define EXTERN extern
-#endif
-
-typedef uint64_t counter_t;
+#include <cstdint>
#define COUNTER_NEB_CALLBACKS 0
#define COUNTER_REQUESTS 1
@@ -52,14 +41,10 @@ typedef uint64_t counter_t;
#define COUNTER_OVERFLOWS 10
#define NUM_COUNTERS 11
-EXTERN counter_t g_counters[NUM_COUNTERS];
-EXTERN counter_t g_last_counter[NUM_COUNTERS];
-EXTERN double g_counter_rate[NUM_COUNTERS];
+extern uint64_t g_counters[NUM_COUNTERS];
+extern uint64_t g_last_counter[NUM_COUNTERS];
+extern double g_counter_rate[NUM_COUNTERS];
void do_statistics();
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* global_counters_h */
+#endif // global_counters_h