pw_metric: allow global groups everywhere
Testing done:
- added a compilation test
Change-Id: I32403965d3a565540d141a4fd01bf13a97184cec
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/17220
Commit-Queue: Paul Mathieu <paulmathieu@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
diff --git a/pw_metric/global_test.cc b/pw_metric/global_test.cc
index a4babc7..ab0aab5 100644
--- a/pw_metric/global_test.cc
+++ b/pw_metric/global_test.cc
@@ -57,7 +57,7 @@
TEST(Global, Groups) {
Group::Dump(global_groups);
- EXPECT_EQ(Size(global_groups), 3);
+ EXPECT_EQ(Size(global_groups), 4);
EXPECT_EQ(Size(gyro_metrics.metrics()), 1);
EXPECT_EQ(Size(comms_metrics.metrics()), 2);
@@ -66,3 +66,7 @@
} // namespace metric
} // namespace pw
+
+// this is a compilation test to make sure metrics can be defined outside of
+// ::pw::metric
+PW_METRIC_GROUP_GLOBAL(global_group, "global group");
diff --git a/pw_metric/public/pw_metric/global.h b/pw_metric/public/pw_metric/global.h
index c629f96..f3b8440 100644
--- a/pw_metric/public/pw_metric/global.h
+++ b/pw_metric/public/pw_metric/global.h
@@ -33,12 +33,13 @@
static constexpr uint32_t variable_name##_token = \
PW_TOKENIZE_STRING_DOMAIN("metrics", #metric_name); \
::pw::metric::TypedMetric<_PW_METRIC_FLOAT_OR_UINT32(init)> variable_name = \
- {variable_name##_token, init, global_metrics}
+ {variable_name##_token, init, ::pw::metric::global_metrics}
// Define a group that is registered in pw::metric::global_groups.
-#define PW_METRIC_GROUP_GLOBAL(variable_name, group_name) \
- static constexpr uint32_t variable_name##_token = \
- PW_TOKENIZE_STRING_DOMAIN("metrics", #group_name); \
- ::pw::metric::Group variable_name = {variable_name##_token, global_groups}
+#define PW_METRIC_GROUP_GLOBAL(variable_name, group_name) \
+ static constexpr uint32_t variable_name##_token = \
+ PW_TOKENIZE_STRING_DOMAIN("metrics", #group_name); \
+ ::pw::metric::Group variable_name = {variable_name##_token, \
+ ::pw::metric::global_groups}
} // namespace pw::metric