list_foreach(server->readers, server, service_reader_common);
}
-static void reader_free_foreach(void *ptr, void *user_data)
-{
- struct reader_logger *reader = (struct reader_logger *)ptr;
- assert(reader);
- reader_free(&reader->common);
-}
-
/**
* @brief Free logger
* @details Deallocate the logger and its auxiliary structures
assert(reader); // to be used with attribute cleanup
reader_free(* ((struct reader_common **) reader));
}
+
+void reader_free_foreach(void *_reader, void *user_data)
+{
+ struct reader_common *const reader = (struct reader_common *)_reader;
+ assert(reader);
+ reader_free(reader);
+}
+
int reader_flush(struct reader_common *reader, struct timespec now_mono, int flush);
void reader_free(struct reader_common *reader);
void reader_free_ptr(void *reader);
+void reader_free_foreach(void *_reader, void *user_data);
void reader_add_sub(struct reader_common *reader, void *sub);
void reader_common_init(struct reader_common *reader, struct logger *server, const struct reader_ops *ops);
int reader_apply_log_to_subs(struct reader_common *reader, const struct dlogutil_entry *de);