libresman

annotate src/resman_impl.h @ 23:f8e5a1491275

win32 file change notification attempt1 (failed)
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 13 Feb 2014 13:17:07 +0200
parents 174ddb6bf92a
children ce04fa12afdd
rev   line source
nuclear@22 1 #ifndef RESMAN_IMPL_H_
nuclear@22 2 #define RESMAN_IMPL_H_
nuclear@22 3
nuclear@22 4 #include <pthread.h>
nuclear@22 5 #include "rbtree.h"
nuclear@22 6 #include "threadpool.h"
nuclear@22 7
nuclear@22 8 #ifdef __linux__
nuclear@22 9 #include <unistd.h>
nuclear@22 10 #include <fcntl.h>
nuclear@22 11 #include <sys/inotify.h>
nuclear@22 12 #endif
nuclear@23 13 #ifdef WIN32
nuclear@23 14 #include <windows.h>
nuclear@23 15 #endif
nuclear@22 16
nuclear@22 17 struct resource {
nuclear@22 18 int id;
nuclear@22 19 char *name;
nuclear@22 20 void *data;
nuclear@22 21 int result; /* last callback-reported success/fail code */
nuclear@22 22
nuclear@22 23 int done_pending;
nuclear@22 24 int delete_pending;
nuclear@22 25 pthread_mutex_t lock;
nuclear@22 26
nuclear@22 27 int num_loads; /* number of loads up to now */
nuclear@22 28
nuclear@22 29 /* file change monitoring */
nuclear@23 30 #ifdef WIN32
nuclear@22 31 HANDLE nhandle;
nuclear@23 32 char *watch_path;
nuclear@22 33 #endif
nuclear@22 34 #ifdef __linux__
nuclear@22 35 int nfd;
nuclear@22 36 #endif
nuclear@22 37 };
nuclear@22 38
nuclear@22 39
nuclear@22 40 struct resman {
nuclear@22 41 struct resource **res;
nuclear@22 42 struct thread_pool *tpool;
nuclear@22 43
nuclear@22 44 pthread_mutex_t lock; /* global resman lock (for res array changes) */
nuclear@22 45
nuclear@22 46 resman_load_func load_func;
nuclear@22 47 resman_done_func done_func;
nuclear@22 48 resman_destroy_func destroy_func;
nuclear@22 49
nuclear@22 50 void *load_func_cls;
nuclear@22 51 void *done_func_cls;
nuclear@22 52 void *destroy_func_cls;
nuclear@22 53
nuclear@22 54 /* file change monitoring */
nuclear@22 55 struct rbtree *nresmap;
nuclear@22 56 #ifdef __linux__
nuclear@22 57 int inotify_fd;
nuclear@23 58 struct rbtree *modset;
nuclear@23 59 #endif
nuclear@23 60 #ifdef WIN32
nuclear@23 61 struct rbtree *watchdirs;
nuclear@23 62 HANDLE *watch_handles; /* dynamic array of all the watch handles */
nuclear@22 63 #endif
nuclear@22 64 };
nuclear@22 65
nuclear@22 66
nuclear@22 67 #endif /* RESMAN_IMPL_H_ */