LogDriver * systemd_journal_sd_new(GlobalConfig *cfg) { SystemdJournalSourceDriver *self = g_new0(SystemdJournalSourceDriver, 1); log_src_driver_init_instance(&self->super, cfg); self->super.super.super.init = __init; self->super.super.super.deinit = __deinit; self->super.super.super.free_fn = __free; journal_reader_options_defaults(&self->reader_options); self->journald = journald_new(); return &self->super.super; }
static gboolean __init(LogPipe *s) { TestSource *self = (TestSource *)s; self->reader = journal_reader_new(configuration, self->journald_mock); journal_reader_options_defaults(&self->options); if (self->current_test_case && self->current_test_case->init) { self->current_test_case->init(self->current_test_case, self, self->journald_mock, self->reader, &self->options); } journal_reader_options_init(&self->options, configuration, "test"); journal_reader_set_options((LogPipe *)self->reader, &self->super, &self->options, 3, SCS_JOURNALD, "test", "1"); log_pipe_append((LogPipe *)self->reader, &self->super); assert_true(log_pipe_init((LogPipe *)self->reader), ASSERTION_ERROR("Can't initialize reader")); return TRUE; }
TestSource * test_source_new(GlobalConfig *cfg) { TestSource *self = g_new0(TestSource, 1); log_pipe_init_instance(&self->super, cfg); self->super.init = __init; self->super.deinit = __deinit; self->super.free_fn = __free; self->super.queue = __queue; self->journald_mock = journald_mock_new(); journal_reader_options_defaults(&self->options); IV_TASK_INIT(&self->start); self->start.cookie = self; self->start.handler = __start_source; IV_TASK_INIT(&self->stop); self->stop.cookie = self; self->stop.handler = __stop_source; return self; }