syslog-ng source
file-monitor.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 Axoflow
3  * Copyright (c) 2023 László Várady
4  * Copyright (c) 2024 shifter
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19  *
20  * As an additional exemption you are allowed to compile & link against the
21  * OpenSSL libraries as published by the OpenSSL project. See the file
22  * COPYING for details.
23  *
24  */
25 
26 #ifndef FILE_MONITOR_H
27 #define FILE_MONITOR_H
28 
29 #include "syslog-ng.h"
30 #include <sys/stat.h>
31 
32 typedef struct _FileMonitor FileMonitor;
33 
34 typedef struct _FileMonitorEvent
35 {
36  const gchar *name;
37  struct stat st;
38  enum
39  {
41  DELETED
42  } event;
44 
45 typedef gboolean (*FileMonitorEventCB)(const FileMonitorEvent *event, gpointer c);
46 
47 FileMonitor *file_monitor_new(const gchar *file_name);
48 void file_monitor_free(FileMonitor *self);
49 
50 void file_monitor_add_watch(FileMonitor *self, FileMonitorEventCB cb, gpointer cb_data);
51 void file_monitor_remove_watch(FileMonitor *self, FileMonitorEventCB cb, gpointer cb_data);
52 
53 void file_monitor_start_and_check(FileMonitor *self);
54 void file_monitor_start(FileMonitor *self);
55 void file_monitor_stop(FileMonitor *self);
56 
57 #endif
void file_monitor_start_and_check(FileMonitor *self)
Definition: file-monitor.c:246
void file_monitor_add_watch(FileMonitor *self, FileMonitorEventCB cb, gpointer cb_data)
Definition: file-monitor.c:63
void file_monitor_remove_watch(FileMonitor *self, FileMonitorEventCB cb, gpointer cb_data)
Definition: file-monitor.c:87
void file_monitor_start(FileMonitor *self)
Definition: file-monitor.c:240
FileMonitor * file_monitor_new(const gchar *file_name)
Definition: file-monitor.c:267
gboolean(* FileMonitorEventCB)(const FileMonitorEvent *event, gpointer c)
Definition: file-monitor.h:45
void file_monitor_free(FileMonitor *self)
Definition: file-monitor.c:259
void file_monitor_stop(FileMonitor *self)
Definition: file-monitor.c:252
Definition: file-monitor.h:35
@ MODIFIED
Definition: file-monitor.h:40
const gchar * name
Definition: file-monitor.h:36
Definition: file-monitor.c:47