source: tags/4.1.0/include/sh_inotify.h

Last change on this file was 481, checked in by katerina, 5 years ago

Enhancements and fixes for tickets #374, #375, #376, #377, #378, and #379.

File size: 1.6 KB
Line 
1#ifndef SH_INOTIFY_H
2#define SH_INOTIFY_H
3
4#define SH_INOTIFY_MAX 128
5
6typedef struct 
7{
8  void * list_of_watches;
9  void * dormant_watches;
10
11  /*
12  int    watch[SH_INOTIFY_MAX];
13  int    flag[SH_INOTIFY_MAX];
14  char * file[SH_INOTIFY_MAX];
15  */
16
17  int     count;
18  int  max_count;
19} sh_watches;
20
21/* #define SH_INOTIFY_INITIALIZER { { 0 }, { 0 }, { NULL}, 0, 0 } */
22
23#define SH_INOTIFY_INITIALIZER { NULL, NULL, 0, 0 }
24
25#define SH_INOTIFY_FILE 0
26#define SH_INOTIFY_DIR  1
27
28int sh_inotify_wait_for_change(char * filename, sh_watches * watches, 
29                               int  * errnum,   int waitsec);
30
31int sh_inotify_rm_watch (sh_watches * watches, sh_watches * save, int wd);
32
33int sh_inotify_add_watch(char * filename, sh_watches * watches, int  * errnum,
34                         int class, unsigned long check_flags, int type, int rdepth);
35
36int sh_inotify_add_watch_later(const char * filename, sh_watches * watches, 
37                               int  * errnum,
38                               int class, unsigned long check_flags, 
39                               int type, int rdepth);
40
41char * sh_inotify_pop_dormant(sh_watches * watches, int * class, 
42                              unsigned long * check_flags, int * type, int * rdepth);
43
44void sh_inotify_purge_dormant(sh_watches * watches);
45void sh_inotify_remove(sh_watches * watches);
46void sh_inotify_init(sh_watches * watches);
47
48char * sh_inotify_search_item(sh_watches * watches, int watch, 
49                              int * class, unsigned long * check_flags, 
50                              int * type, int * rdepth);
51ssize_t sh_inotify_read(char * buffer, size_t count);
52ssize_t sh_inotify_read_timeout(char * buffer, size_t count, int timeout);
53int sh_inotify_recheck_watches (sh_watches * watches, sh_watches * save);
54
55#define SH_INOTIFY_ERROR(a) (a != 0)
56
57#endif
Note: See TracBrowser for help on using the repository browser.