aboutsummaryrefslogtreecommitdiff
path: root/src/block.h
diff options
context:
space:
mode:
authorFederico Angelilli <code@fedang.net>2024-11-27 23:19:38 +0100
committerFederico Angelilli <code@fedang.net>2024-11-27 23:19:38 +0100
commit6ab3b52fbde3ab2ac11e66e4d664f67e108f6aee (patch)
tree838f5231fffc6cacdd65762443fd56bbe0f275f6 /src/block.h
parent2582279bc1046954702311c300294c5fd9f3ae0c (diff)
Rework resolve functions
Diffstat (limited to 'src/block.h')
-rw-r--r--src/block.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/block.h b/src/block.h
index be62d20..940231a 100644
--- a/src/block.h
+++ b/src/block.h
@@ -54,6 +54,7 @@ struct block {
const block_scheme_t *scheme;
bool validated;
bool resolved;
+ bool grouped;
bool hidden;
struct timespec update_interval;
struct timespec update_last;
@@ -104,6 +105,10 @@ typedef void (*block_clean_t)(block_t *block);
//
typedef int (*block_validate_t)(block_t *block, config_t *config);
+// Called to resolve references in the block
+//
+typedef bool (*block_resolve_t)(block_t *block, config_t *config);
+
// Called to validate changes to a block variable
//
typedef config_status_t (*block_change_t)(block_t *block, config_t *config, const char *key, const char *value);
@@ -116,6 +121,7 @@ struct block_scheme {
block_init_t init_fn;
block_clean_t clean_fn;
block_validate_t validate_fn;
+ block_resolve_t resolve_fn;
block_change_t change_fn;
};
@@ -123,6 +129,8 @@ extern const block_scheme_t *block_schemes[];
void block_update(block_t *block);
+bool block_resolve(block_t *block, config_t *config);
+
bool block_change(block_t *block, config_t *config, const char *key, const char *value);
void block_free(block_t *block);