ea7ef4a6f133739ec5c5e4113a3f972927791eb4
[platform/core/system/dlog.git] / src / logger / reader_logger.h
1 #pragma once
2
3 #include <log_file.h>
4 #include <queued_entry_timestamp.h>
5 #include "reader_common.h"
6
7 struct subreader_logger_file {
8         struct log_file file;
9 };
10
11 struct subreader_logger_metrics {
12         struct qos_module *qos;
13 };
14
15 struct subreader_logger {
16         void (*sub_apply_log)(const struct subreader_logger *srl, const struct dlogutil_entry *due);
17         void (*sub_destroy)(void *sub_userdata);
18         void *sub_userdata;
19         dlogutil_filter_options_s *filter;
20 };
21
22 struct reader_logger {
23         list_head subs;
24         log_id_t buf_id;
25         int skip_count;
26         struct reader common;
27 };
28
29 int reader_logger_init(struct reader_logger **reader, log_id_t buf_id, struct logger *server, bool skip);
30 int service_reader_logger(struct reader_logger* reader, struct now_t time);
31 int reader_logger_add_subreader_file(struct reader_logger *reader, dlogutil_filter_options_s *filter, struct log_file *file);
32 int reader_logger_add_subreader_metrics(struct reader_logger *reader, struct qos_module *qos);
33 void reader_logger_free(struct reader_logger *reader);
34 void reader_logger_cleanup(struct reader_logger *const *ptr);