Converted README to markdown
[rox-filer.git] / ROX-Filer / src / fscache.h
blobbe107ec77e9ec49bd91a28406240e7ea9537a2f7
1 /*
2 * ROX-Filer, filer for the ROX desktop project
3 * Thomas Leonard, <tal197@users.sourceforge.net>
4 */
7 #ifndef _FSCACHE_H
8 #define _FSCACHE_H
10 #include <sys/stat.h>
11 #include <unistd.h>
12 #include <stdlib.h>
13 #include <time.h>
14 #include <glib.h>
15 #include <glib-object.h>
17 typedef GObject *(*GFSLoadFunc)(const char *pathname, gpointer user_data);
18 typedef void (*GFSUpdateFunc)(gpointer object,
19 const char *pathname,
20 gpointer user_data);
21 typedef enum {
22 FSCACHE_LOOKUP_CREATE, /* Load if missing. Update as needed. */
23 FSCACHE_LOOKUP_ONLY_NEW,/* Return NULL if not present AND uptodate */
24 FSCACHE_LOOKUP_PEEK, /* Lookup; don't load or update */
25 FSCACHE_LOOKUP_INIT, /* Internal use */
26 FSCACHE_LOOKUP_INSERT, /* Internal use */
27 } FSCacheLookup;
29 GFSCache *g_fscache_new(GFSLoadFunc load,
30 GFSUpdateFunc update,
31 gpointer user_data);
32 void g_fscache_destroy(GFSCache *cache);
33 gpointer g_fscache_lookup(GFSCache *cache, const char *pathname);
34 gpointer g_fscache_lookup_full(GFSCache *cache, const char *pathname,
35 FSCacheLookup lookup_type,
36 gboolean *found);
37 void g_fscache_may_update(GFSCache *cache, const char *pathname);
38 void g_fscache_update(GFSCache *cache, const char *pathname);
39 void g_fscache_purge(GFSCache *cache, gint age);
41 void g_fscache_insert(GFSCache *cache, const char *pathname, gpointer obj,
42 gboolean update_details);
44 #endif /* _FSCACHE_H */