syslog-ng source
file-reader.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017 Balabit
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 2 as published
6  * by the Free Software Foundation, or (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16  *
17  * As an additional exemption you are allowed to compile & link against the
18  * OpenSSL libraries as published by the OpenSSL project. See the file
19  * COPYING for details.
20  *
21  */
22 #ifndef MODULES_AFFILE_FILE_READER_H_
23 #define MODULES_AFFILE_FILE_READER_H_
24 
25 #include "driver.h"
26 #include "logreader.h"
27 #include "file-opener.h"
28 
29 typedef struct _FileReaderOptions
30 {
35  gboolean restore_state;
38 
39 typedef struct _FileReader FileReader;
41 {
42  LogPipe super;
43  LogSrcDriver *owner;
44  GString *filename;
46  FileOpener *opener;
47  LogReader *reader;
48  gboolean can_check_eof;
49  const gchar *persist_name;
50  const gchar *persist_name_prefix;
52 
53  void (*on_file_moved)(FileReader *);
54 };
55 
57 file_reader_options_get_log_proto_options(FileReaderOptions *options)
58 {
59  return (LogProtoFileReaderOptionsStorage *) &options->reader_options.proto_options;
60 }
61 
62 FileReader *file_reader_new(const gchar *filename, FileReaderOptions *options, FileOpener *opener, LogSrcDriver *owner,
63  GlobalConfig *cfg);
64 
65 void file_reader_init_instance(FileReader *self, const gchar *filename, FileReaderOptions *options, FileOpener *opener,
66  LogSrcDriver *owner, GlobalConfig *cfg, const gchar *persist_name_prefix);
67 
68 gboolean file_reader_init_method(LogPipe *s);
69 gboolean file_reader_deinit_method(LogPipe *s);
70 void file_reader_free_method(LogPipe *s);
71 void file_reader_queue_method(LogPipe *s, LogMessage *msg, const LogPathOptions *path_options);
72 gint file_reader_notify_method(LogPipe *s, gint notify_code, gpointer user_data);
73 
74 void file_reader_remove_persist_state(FileReader *self);
75 void file_reader_stop_follow_file(FileReader *self);
76 void file_reader_cue_buffer_flush(FileReader *self);
77 
78 void file_reader_options_set_follow_freq(FileReaderOptions *options, gint follow_freq);
79 void file_reader_options_set_follow_always_reads(FileReaderOptions *options, gboolean follow_always_reads);
80 gboolean file_reader_options_set_follow_method(FileReaderOptions *options, const gchar *follow_method);
81 void file_reader_options_set_multi_line_timeout(FileReaderOptions *options, gint multi_line_timeout);
82 
84 gboolean file_reader_options_init(FileReaderOptions *options, GlobalConfig *cfg, const gchar *group);
86 
87 
88 
89 #endif /* MODULES_AFFILE_FILE_READER_H_ */
void file_reader_queue_method(LogPipe *s, LogMessage *msg, const LogPathOptions *path_options)
Definition: file-reader.c:604
gboolean file_reader_options_set_follow_method(FileReaderOptions *options, const gchar *follow_method)
Definition: file-reader.c:711
void file_reader_remove_persist_state(FileReader *self)
Definition: file-reader.c:640
void file_reader_options_defaults(FileReaderOptions *options)
Definition: file-reader.c:732
void file_reader_cue_buffer_flush(FileReader *self)
Definition: file-reader.c:660
void file_reader_options_set_multi_line_timeout(FileReaderOptions *options, gint multi_line_timeout)
Definition: file-reader.c:726
void file_reader_options_set_follow_freq(FileReaderOptions *options, gint follow_freq)
Definition: file-reader.c:699
void file_reader_init_instance(FileReader *self, const gchar *filename, FileReaderOptions *options, FileOpener *opener, LogSrcDriver *owner, GlobalConfig *cfg, const gchar *persist_name_prefix)
Definition: file-reader.c:667
FileReader * file_reader_new(const gchar *filename, FileReaderOptions *options, FileOpener *opener, LogSrcDriver *owner, GlobalConfig *cfg)
Definition: file-reader.c:689
gboolean file_reader_deinit_method(LogPipe *s)
Definition: file-reader.c:621
void file_reader_options_deinit(FileReaderOptions *options)
Definition: file-reader.c:768
void file_reader_free_method(LogPipe *s)
Definition: file-reader.c:630
gboolean file_reader_init_method(LogPipe *s)
Definition: file-reader.c:613
void file_reader_stop_follow_file(FileReader *self)
Definition: file-reader.c:653
void file_reader_options_set_follow_always_reads(FileReaderOptions *options, gboolean follow_always_reads)
Definition: file-reader.c:705
gboolean file_reader_options_init(FileReaderOptions *options, GlobalConfig *cfg, const gchar *group)
Definition: file-reader.c:757
gint file_reader_notify_method(LogPipe *s, gint notify_code, gpointer user_data)
Definition: file-reader.c:569
const gchar * group
Definition: gprocess.c:122
FollowMethod
Definition: poll-events.h:30
Definition: file-reader.h:30
gboolean follow_always_reads
Definition: file-reader.h:32
LogReaderOptions reader_options
Definition: file-reader.h:36
gint multi_line_timeout
Definition: file-reader.h:34
gboolean restore_state
Definition: file-reader.h:35
FollowMethod follow_method
Definition: file-reader.h:33
gint follow_freq
Definition: file-reader.h:31
Definition: logreader.h:47
Definition: file-reader.h:41
LogSrcDriver * owner
Definition: file-reader.h:43
FileOpener * opener
Definition: file-reader.h:46
gboolean monitor_can_notify_file_changes
Definition: file-reader.h:51
LogReader * reader
Definition: file-reader.h:47
void(* on_file_moved)(FileReader *)
Definition: file-reader.h:53
LogPipe super
Definition: file-reader.h:42
const gchar * persist_name_prefix
Definition: file-reader.h:50
const gchar * persist_name
Definition: file-reader.h:49
gboolean can_check_eof
Definition: file-reader.h:48
GString * filename
Definition: file-reader.h:44
FileReaderOptions * options
Definition: file-reader.h:45
GlobalConfig * cfg
Definition: test_batched_ack_tracker.c:34
CSVScannerOptions options
Definition: test_csv_scanner.c:30
LogMessage * msg
Definition: test_rename.c:35
LogPathOptions path_options
Definition: test_wildcard_file_reader.c:62
Definition: logproto-file-reader.h:37