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
};