Created
September 2, 2015 20:26
-
-
Save ritikm/d03e19b033665b849df1 to your computer and use it in GitHub Desktop.
fusefs.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef FSTUTORIAL_FUSEFS_H_ | |
#define FSTUTORIAL_FUSEFS_H_ | |
#include <ctype.h> | |
#include <dirent.h> | |
#include <errno.h> | |
#include <fcntl.h> | |
#include <osxfuse/fuse.h> | |
#include <limits.h> | |
#include <stdlib.h> | |
#include <stdio.h> | |
#include <unistd.h> | |
#include <sys/types.h> | |
#include <sys/xattr.h> | |
#include <string> | |
namespace box { | |
class FuseFS : NonCopyable { | |
public: | |
virtual ~FuseFS() { | |
} | |
virtual int create(const char* path, mode_t mode, struct fuse_file_info* fi) = 0; | |
virtual int getattr(const char* path, struct stat* statbuf) = 0; | |
virtual int readlink(const char* path, char* link, size_t size) = 0; | |
virtual int mknod(const char* path, mode_t mode, dev_t dev) = 0; | |
virtual int mkdir(const char* path, mode_t mode) = 0; | |
virtual int unlink(const char* path) = 0; | |
virtual int rmdir(const char* path) = 0; | |
virtual int symlink(const char* path, const char* link) = 0; | |
virtual int rename(const char* path, const char* newpath) = 0; | |
virtual int link(const char* path, const char* newpath) = 0; | |
virtual int chmod(const char* path, mode_t mode) = 0; | |
virtual int chown(const char* path, uid_t uid, gid_t gid) = 0; | |
virtual int truncate(const char* path, off_t newSize) = 0; | |
virtual int utime(const char* path, struct utimbuf* ubuf) = 0; | |
virtual int open(const char* path, struct fuse_file_info* fileInfo) = 0; | |
virtual int read(const char* path, char* buf, size_t size, off_t offset, struct fuse_file_info* fileInfo) = 0; | |
virtual int write(const char* path, const char* buf, size_t size, off_t offset, | |
struct fuse_file_info* fileInfo) = 0; | |
virtual int statfs(const char* path, struct statvfs* statInfo) = 0; | |
virtual int flush(const char* path, struct fuse_file_info* fileInfo) = 0; | |
virtual int release(const char* path, struct fuse_file_info* fileInfo) = 0; | |
virtual int fsync(const char* path, int datasync, struct fuse_file_info* fi) = 0; | |
virtual int setxattr(const char* path, const char* name, const char* value, size_t size, int flags, | |
uint32_t position) = 0; | |
virtual int getxattr(const char* path, const char* name, char* value, size_t size, uint32_t position) = 0; | |
virtual int listxattr(const char* path, char* list, size_t size) = 0; | |
virtual int removexattr(const char* path, const char* name) = 0; | |
virtual int opendir(const char* path, struct fuse_file_info* fileInfo) = 0; | |
virtual int readdir(const char* path, void* buf, fuse_fill_dir_t filler, off_t offset, | |
struct fuse_file_info* fileInfo) = 0; | |
virtual int releasedir(const char* path, struct fuse_file_info* fileInfo) = 0; | |
virtual int fsyncdir(const char* path, int datasync, struct fuse_file_info* fileInfo) = 0; | |
virtual int truncate(const char* path, off_t offset, struct fuse_file_info* fileInfo) = 0; | |
virtual void* init(struct fuse_conn_info* conn) = 0; | |
}; | |
} // namespace fstutorial | |
#endif // FSTUTORIAL_FUSEFS_H_ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment