HEAD: remove ridiculous dependency of wvmapi (actually wvtnef) on evolution
[wvapps.git] / funfs / cachefs.h
blob37b6d8fd3a75004d74fdd556893528945e21dfb3
1 #ifndef __CACHEFS_H
2 #define __CACHEFS_H
4 #include "wvfs.h"
5 #include "cachefsrcache.h"
7 #include <wvlog.h>
8 #include <uniconf.h>
10 #define MT_GETATTR 1
11 #define MT_READLINK 3
12 #define MT_INVAL_FD 10
13 #define MT_INVAL_PATH 11
16 class CacheFS : public WvFS, protected ReadCache
18 friend class CacheFSCbMgr;
19 friend class AsyncReadblock;
21 public:
22 CacheFS(WvFS *_fs, UniConf _cfg);
23 virtual ~CacheFS();
25 /*** WvFS Stuff ***/
26 virtual int fs_chmod(CONTEXT, PATH, mode_t mode);
27 virtual int fs_chown(CONTEXT, PATH, uid_t uid, gid_t gid);
28 virtual int fs_getattr(CONTEXT, PATH, struct fuse_attr *attr);
29 virtual int fs_getdir(CONTEXT, PATH, WvFuseDirCb &cb);
30 virtual int fs_link(CONTEXT, PATH, WvStringParm to);
31 virtual int fs_mkdir(CONTEXT, PATH, mode_t mode);
32 virtual int fs_mknod(CONTEXT, PATH, mode_t mode, dev_t rdev);
33 virtual int fs_open(CONTEXT, PATH, int flags);
34 virtual int fs_readlink(CONTEXT, PATH, char *buf, size_t size);
35 virtual int fs_rename(CONTEXT, PATH, WvStringParm to);
36 virtual int fs_rmdir(CONTEXT, PATH);
37 virtual int fs_symlink(CONTEXT, PATH, WvStringParm to);
38 virtual int fs_unlink(CONTEXT, PATH);
39 virtual int fs_utime(CONTEXT, PATH, struct utimbuf *buf);
41 virtual int fs_release(CONTEXT, FD);
42 virtual int fs_read(CONTEXT, FD, char *buf, size_t size, off_t offset);
43 virtual int fs_truncate(CONTEXT, FD, off_t size);
44 virtual int fs_write(CONTEXT, FD, const char *buf, size_t size,
45 off_t offset);
47 virtual int fs_statfs(CONTEXT, struct fuse_kstatfs *fst);
49 virtual void set_message_callback(WvFSMessageCB cb)
50 { messagecb = cb; }
52 void message_handler(int mtype, WvStringParm path);
54 protected:
55 WvFS *fs;
56 WvLog log;
58 WvFSMessageCB messagecb;
61 #endif