diff options
Diffstat (limited to 'src/blocks/date.c')
| -rw-r--r-- | src/blocks/date.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/blocks/date.c b/src/blocks/date.c index 93747c3..adb248e 100644 --- a/src/blocks/date.c +++ b/src/blocks/date.c @@ -2,7 +2,7 @@ #include <assert.h> #include <time.h> -#include "scheme.h" +#include "../block.h" #include "../any_log.h" @@ -11,6 +11,11 @@ typedef struct { char *format; } block_date_t; +static const struct timespec block_date_interval = { + .tv_sec = 1, + .tv_nsec = 0, +}; + static void block_date_update(block_t *block) { block_date_t *date = (block_date_t *)block; @@ -26,6 +31,15 @@ static void block_date_update(block_t *block) assert(date->block.text != NULL); } +static block_t *block_date_alloc(const block_scheme_t *scheme) +{ + block_t *block = calloc(1, sizeof(block_date_t)); + block->type = BLOCK_TEXT; + block->update_interval = block_date_interval; + block->update_fn = block_date_update; + return block; +} + static void block_date_clean(block_t *block) { block_date_t *date = (block_date_t *)block; @@ -48,16 +62,9 @@ static bool block_date_validate(block_t *block, const block_scheme_t *scheme) const block_scheme_t block_date_scheme = { .name = "date", - .block = { - .type = BLOCK_TEXT, - .update_interval = { - .tv_sec = 1, - .tv_nsec = 0, - }, - .update_fn = block_date_update, - .clean_fn = block_date_clean, - }, - .size = sizeof(block_date_t), .entries = NULL, - .validate = block_date_validate, + .alloc_fn = block_date_alloc, + .clean_fn = block_date_clean, + .validate_fn = block_date_validate, + .resolve_fn = NULL, }; |
