@cryptotaxi247 / netdata-1 / commits / 71f5fcda2

Use of out-of-line struct definitions. (#10739)

This change, which does not change the memory layout of the parent structs, allows inclusion of daemon/common.h in C++ without relying on -fpermissive.

vkalintiris committed Mar 9, 2021 at 17:39 UTC 71f5fcda20f6d3fcf9450a07156cda430716e250
2 files changed +24 -15
database/engine/rrdengine.h
+11 -7
@@ -56,16 +56,20 @@ enum rrdeng_opcode {
56 RRDENG_MAX_OPCODE
57 };
58
59 +struct rrdeng_read_page {
60 + struct rrdeng_page_descr *page_cache_descr;
61 +};
62 +
63 +struct rrdeng_read_extent {
64 + struct rrdeng_page_descr *page_cache_descr[MAX_PAGES_PER_EXTENT];
65 + int page_count;
66 +};
67 +
68 struct rrdeng_cmd {
69 enum rrdeng_opcode opcode;
70 union {
62 - struct rrdeng_read_page {
63 - struct rrdeng_page_descr *page_cache_descr;
64 - } read_page;
65 - struct rrdeng_read_extent {
66 - struct rrdeng_page_descr *page_cache_descr[MAX_PAGES_PER_EXTENT];
67 - int page_count;
68 - } read_extent;
71 + struct rrdeng_read_page read_page;
72 + struct rrdeng_read_extent read_extent;
73 struct completion *completion;
74 };
75 };
database/rrd.h
+13 -8
@@ -336,6 +336,18 @@ union rrddim_collect_handle {
336
337 // ----------------------------------------------------------------------------
338 // iterator state for RRD dimension data queries
339 +
340 +#ifdef ENABLE_DBENGINE
341 +struct rrdeng_query_handle {
342 + struct rrdeng_page_descr *descr;
343 + struct rrdengine_instance *ctx;
344 + struct pg_cache_page_index *page_index;
345 + time_t next_page_time;
346 + time_t now;
347 + unsigned position;
348 +};
349 +#endif
350 +
351 struct rrddim_query_handle {
352 RRDDIM *rd;
353 time_t start_time;
@@ -347,14 +359,7 @@ struct rrddim_query_handle {
359 uint8_t finished;
360 } slotted; // state the legacy code uses
361 #ifdef ENABLE_DBENGINE
350 - struct rrdeng_query_handle {
351 - struct rrdeng_page_descr *descr;
352 - struct rrdengine_instance *ctx;
353 - struct pg_cache_page_index *page_index;
354 - time_t next_page_time;
355 - time_t now;
356 - unsigned position;
357 - } rrdeng; // state the database engine uses
362 + struct rrdeng_query_handle rrdeng; // state the database engine uses
363 #endif
364 };
365 };