org.catacombae.jfuse
Class FUSE26FileSystemAdapter

java.lang.Object
  extended by org.catacombae.jfuse.FUSE26FileSystemAdapter
All Implemented Interfaces:
FUSE26FileSystem, FUSE26Operations, FUSEErrorValues, FUSEFileSystem, FileModeFlags, FileStatusFlags, SystemConstants
Direct Known Subclasses:
FUSEFileSystemAdapter

public abstract class FUSE26FileSystemAdapter
extends Object
implements FUSEFileSystem


Field Summary
 
Fields inherited from interface org.catacombae.jfuse.types.system.FileStatusFlags
O_ACCMODE, O_APPEND, O_ASYNC, O_CREAT, O_DIRECTORY, O_EVTONLY, O_EXCL, O_EXLOCK, O_NOCTTY, O_NOFOLLOW, O_NONBLOCK, O_RDONLY, O_RDWR, O_SHLOCK, O_SYMLINK, O_SYNC, O_TRUNC, O_WRONLY
 
Fields inherited from interface org.catacombae.jfuse.types.system.FileModeFlags
S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO, S_IFLNK, S_IFMT, S_IFREG, S_IFSOCK, S_IRGRP, S_IROTH, S_IRUSR, S_IRWXG, S_IRWXO, S_IRWXU, S_ISGID, S_ISUID, S_ISVTX, S_IWGRP, S_IWOTH, S_IWUSR, S_IXGRP, S_IXOTH, S_IXUSR
 
Fields inherited from interface org.catacombae.jfuse.FUSEErrorValues
E2BIG, EACCES, EADDRINUSE, EADDRNOTAVAIL, EAFNOSUPPORT, EAGAIN, EALREADY, EBADF, EBADMSG, EBUSY, ECANCELED, ECHILD, ECONNABORTED, ECONNREFUSED, ECONNRESET, EDEADLK, EDESTADDRREQ, EDOM, EDQUOT, EEXIST, EFAULT, EFBIG, EHOSTDOWN, EHOSTUNREACH, EIDRM, EILSEQ, EINPROGRESS, EINTR, EINVAL, EIO, EISCONN, EISDIR, ELOOP, EMFILE, EMLINK, EMSGSIZE, EMULTIHOP, ENAMETOOLONG, ENETDOWN, ENETRESET, ENETUNREACH, ENFILE, ENOBUFS, ENODEV, ENOENT, ENOEXEC, ENOLCK, ENOLINK, ENOMEM, ENOMSG, ENOPROTOOPT, ENOSPC, ENOSYS, ENOTBLK, ENOTCONN, ENOTDIR, ENOTEMPTY, ENOTSOCK, ENOTSUP, ENOTTY, ENXIO, EOPNOTSUPP, EOVERFLOW, EPERM, EPFNOSUPPORT, EPIPE, EPROTO, EPROTONOSUPPORT, EPROTOTYPE, ERANGE, EREMOTE, EROFS, ESHUTDOWN, ESOCKTNOSUPPORT, ESPIPE, ESRCH, ESTALE, ETIMEDOUT, ETOOMANYREFS, ETXTBSY, EUSERS, EWOULDBLOCK, EXDEV
 
Constructor Summary
FUSE26FileSystemAdapter()
           
 
Method Summary
 int access(ByteBuffer path, int mode)
           Check file access permissions.
 int bmap(ByteBuffer path, long blocksize, LongRef idx)
           Map block index within file to block index within device.
 int chmod(ByteBuffer path, short mode_t_newMode)
           Change the permission bits of a file.
 int chown(ByteBuffer path, long userId, long groupId)
           Change the owner and group of a file
 int create(ByteBuffer path, short mode, FUSEFileInfo fi)
           Create and open a file.
 void destroy(Object o)
           Clean up filesystem.
 int fgetattr(ByteBuffer path, Stat stat, FUSEFileInfo fi)
           Get attributes from an open file.
 int flush(ByteBuffer path, FUSEFileInfo fi)
           Possibly flush cached data.
 int fsync(ByteBuffer path, boolean datasync, FUSEFileInfo fi)
           Synchronize file contents.
 int fsyncdir(ByteBuffer path, boolean datasync, FUSEFileInfo fi)
           Synchronize directory contents.
 int ftruncate(ByteBuffer path, long length, FUSEFileInfo fi)
           Change the size of an open file.
 int getattr(ByteBuffer path, Stat stat)
           Get file attributes.
 int getdir(ByteBuffer path, FUSEDirFil filler)
           Deprecated, use readdir() instead.
 FUSE26Capabilities getFUSECapabilities()
           
 int getxattr_BSD(ByteBuffer path, ByteBuffer name, ByteBuffer value, int position)
           Get extended attributes.
 int getxattr(ByteBuffer path, ByteBuffer name, ByteBuffer value)
           Get extended attributes.
 Object init(FUSEConnInfo conn)
           Initialize filesystem.
 int link(ByteBuffer sourcePath, ByteBuffer destPath)
           Create a hard link to a file.
 int listxattr(ByteBuffer path, ByteBuffer namebuf)
           List extended attributes.
 int lock(ByteBuffer path, FUSEFileInfo fi, int cmd, Flock flock)
           Perform POSIX file locking operation.
 int mkdir(ByteBuffer path, short createMode)
           Create a directory.
 int mknod(ByteBuffer path, short fileMode, long deviceNumber)
           Create a file node.
 int open(ByteBuffer path, FUSEFileInfo fi)
           File open operation.
 int opendir(ByteBuffer path, FUSEFileInfo fi)
           Open directory.
 int read(ByteBuffer path, ByteBuffer dest, long offset, FUSEFileInfo fi)
           Read data from an open file.
 int readdir(ByteBuffer path, FUSEFillDir filler, long offset, FUSEFileInfo fi)
           Read directory.
 int readlink(ByteBuffer path, ByteBuffer buffer)
           Read the target of a symbolic link.
 int release(ByteBuffer path, FUSEFileInfo fi)
           Release an open file.
 int releasedir(ByteBuffer path, FUSEFileInfo fi)
           Release directory.
 int removexattr(ByteBuffer path, ByteBuffer name)
           Remove extended attributes.
 int rename(ByteBuffer oldPath, ByteBuffer newPath)
           Rename a file.
 int rmdir(ByteBuffer path)
           Remove a directory.
 int setxattr_BSD(ByteBuffer path, ByteBuffer name, ByteBuffer value, int flags, int position)
           Set extended attributes.
 int setxattr(ByteBuffer path, ByteBuffer name, ByteBuffer value, int flags)
           Set extended attributes.
 int statfs(ByteBuffer path, StatVFS stat)
           Get file system statistics.
 int symlink(ByteBuffer sourcePath, ByteBuffer destPath)
           Create a symbolic link.
 int truncate(ByteBuffer path, long newSize)
           Change the size of a file.
 int unlink(ByteBuffer path)
           Remove a file.
 int utime(ByteBuffer path, Utimbuf time)
           Change the access and/or modification times of a file.
 int utimens(ByteBuffer path, Timespec accessTime, Timespec modificationTime)
           Change the access and modification times of a file with nanosecond resolution.
 int write(ByteBuffer path, ByteBuffer src, long off, FUSEFileInfo fi)
           Write data to an open file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FUSE26FileSystemAdapter

public FUSE26FileSystemAdapter()
Method Detail

getattr

public int getattr(ByteBuffer path,
                   Stat stat)
Description copied from interface: FUSE26Operations
 Get file attributes.

 Similar to stat().  The 'st_dev' and 'st_blksize' fields are
 ignored.  The 'st_ino' field is ignored except if the 'use_ino'
 mount option is given.
 

Specified by:
getattr in interface FUSE26Operations
Parameters:
path - (const char*)
stat - (struct stat*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

readlink

public int readlink(ByteBuffer path,
                    ByteBuffer buffer)
Description copied from interface: FUSE26Operations
 Read the target of a symbolic link.

 The buffer should be filled with a null terminated string.  The
 buffer size argument includes the space for the terminating
 null character.  If the linkname is too long to fit in the
 buffer, it should be truncated.  The return value should be 0
 for success.
 
In jFUSE the buffer size argument has already been parsed when this method gets the buffer. The byte array passed to readlink has a size equal to the size of the native buffer.

Specified by:
readlink in interface FUSE26Operations
Parameters:
path - (const char*)
buffer - (char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

getdir

public int getdir(ByteBuffer path,
                  FUSEDirFil filler)
Description copied from interface: FUSE26Operations
 Deprecated, use readdir() instead.
 

Specified by:
getdir in interface FUSE26Operations
Parameters:
path - (const char*)
filler - (fuse_dirfil_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

mknod

public int mknod(ByteBuffer path,
                 short fileMode,
                 long deviceNumber)
Description copied from interface: FUSE26Operations
 Create a file node.

 This is called for creation of all non-directory, non-symlink
 nodes.  If the filesystem defines a create() method, then for
 regular files that will be called instead.
 

Specified by:
mknod in interface FUSE26Operations
Parameters:
path - (const char*)
fileMode - (mode_t)
deviceNumber - (dev_t)
Returns:
0 if successful, an inverted error value from FUSEErrorValues otherwise.

mkdir

public int mkdir(ByteBuffer path,
                 short createMode)
Description copied from interface: FUSE26Operations
 Create a directory.
 

Specified by:
mkdir in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
createMode - (mode_t)
Returns:
0 if successful, an inverted error value from FUSEErrorValues otherwise.

unlink

public int unlink(ByteBuffer path)
Description copied from interface: FUSE26Operations
 Remove a file.
 

Specified by:
unlink in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
Returns:
0 if successful, an inverted error value from FUSEErrorValues otherwise.

rmdir

public int rmdir(ByteBuffer path)
Description copied from interface: FUSE26Operations
 Remove a directory.
 

Specified by:
rmdir in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
Returns:
0 if successful, an inverted error value from FUSEErrorValues otherwise.

symlink

public int symlink(ByteBuffer sourcePath,
                   ByteBuffer destPath)
Description copied from interface: FUSE26Operations
 Create a symbolic link.
 

Specified by:
symlink in interface FUSE26Operations
Parameters:
sourcePath - (const char*)
destPath - (const char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

rename

public int rename(ByteBuffer oldPath,
                  ByteBuffer newPath)
Description copied from interface: FUSE26Operations
 Rename a file.
 

Specified by:
rename in interface FUSE26Operations
Parameters:
oldPath - (const char*)
newPath - (const char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

link

public int link(ByteBuffer sourcePath,
                ByteBuffer destPath)
Description copied from interface: FUSE26Operations
 Create a hard link to a file.
 

Specified by:
link in interface FUSE26Operations
Parameters:
sourcePath - (const char*)
destPath - (const char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

chmod

public int chmod(ByteBuffer path,
                 short mode_t_newMode)
Description copied from interface: FUSE26Operations
 Change the permission bits of a file.
 

Specified by:
chmod in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
mode_t_newMode - (mode_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

chown

public int chown(ByteBuffer path,
                 long userId,
                 long groupId)
Description copied from interface: FUSE26Operations
 Change the owner and group of a file
 

Specified by:
chown in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
userId - (uid_t)
groupId - (uid_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

truncate

public int truncate(ByteBuffer path,
                    long newSize)
Description copied from interface: FUSE26Operations
 Change the size of a file.
 

Specified by:
truncate in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
newSize - (off_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

utime

public int utime(ByteBuffer path,
                 Utimbuf time)
Description copied from interface: FUSE26Operations
 Change the access and/or modification times of a file.

 Deprecated, use utimens() instead.
 

Specified by:
utime in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
time - (struct utimbuf*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

open

public int open(ByteBuffer path,
                FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 File open operation.

 No creation, or truncation flags (O_CREAT, O_EXCL, O_TRUNC)
 will be passed to open().  Open should check if the operation
 is permitted for the given flags.  Optionally open may also
 return an arbitrary filehandle in the fuse_file_info structure,
 which will be passed to all file operations.

 Changed in version 2.2
 

Specified by:
open in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

read

public int read(ByteBuffer path,
                ByteBuffer dest,
                long offset,
                FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Read data from an open file.

 Read should return exactly the number of bytes requested except
 on EOF or error, otherwise the rest of the data will be
 substituted with zeroes.  An exception to this is when the
 'direct_io' mount option is specified, in which case the return
 value of the read system call will reflect the return value of
 this operation.

 Changed in version 2.2
 

Specified by:
read in interface FUSE26Operations
Parameters:
path - (const char*) a path to the file to read from.
dest - (char*) the destination buffer.
offset - (off_t) offset in file to start reading.
fi - (struct fuse_file_info*) file info.
Returns:
the number of bytes read (a positive number) if the operation completed successfully, or a negated value from FUSEErrorValues if an error occurred.
Typical error return values for read:

write

public int write(ByteBuffer path,
                 ByteBuffer src,
                 long off,
                 FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Write data to an open file.

 Write should return exactly the number of bytes requested
 except on error.  An exception to this is when the 'direct_io'
 mount option is specified (see read operation).

 Changed in version 2.2
 

Specified by:
write in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
src - (const char*) the data to write.
off - (off_t) offset in file where data should be written.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

statfs

public int statfs(ByteBuffer path,
                  StatVFS stat)
Description copied from interface: FUSE26Operations
 Get file system statistics.

 The 'f_frsize', 'f_favail', 'f_fsid' and 'f_flag' fields are ignored

 Replaced 'struct statfs' parameter with 'struct statvfs' in
 version 2.5
 

Specified by:
statfs in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
stat - (struct statvfs*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

flush

public int flush(ByteBuffer path,
                 FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Possibly flush cached data.

 BIG NOTE: This is not equivalent to fsync().  It's not a
 request to sync dirty data.

 Flush is called on each close() of a file descriptor.  So if a
 filesystem wants to return write errors in close() and the file
 has cached dirty data, this is a good place to write back data
 and return any errors.  Since many applications ignore close()
 errors this is not always useful.

 NOTE: The flush() method may be called more than once for each
 open().  This happens if more than one file descriptor refers
 to an opened file due to dup(), dup2() or fork() calls.  It is
 not possible to determine if a flush is final, so each flush
 should be treated equally.  Multiple write-flush sequences are
 relatively rare, so this shouldn't be a problem.

 Filesystems shouldn't assume that flush will always be called
 after some writes, or that if will be called at all.

 Changed in version 2.2
 

Specified by:
flush in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

release

public int release(ByteBuffer path,
                   FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Release an open file.

 Release is called when there are no more references to an open
 file: all file descriptors are closed and all memory mappings
 are unmapped.

 For every open() call there will be exactly one release() call
 with the same flags and file descriptor.  It is possible to
 have a file opened more than once, in which case only the last
 release will mean, that no more reads/writes will happen on the
 file.  The return value of release is ignored.

 Changed in version 2.2
 

Specified by:
release in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise. (ignored)

fsync

public int fsync(ByteBuffer path,
                 boolean datasync,
                 FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Synchronize file contents.

 If the datasync parameter is non-zero, then only the user data
 should be flushed, not the meta data.

 Changed in version 2.2
 

Specified by:
fsync in interface FUSE26Operations
Parameters:
path - (const char*) the path to the file system node on which the operation is to be applied.
datasync - (int) set to true if only the user data should be flushed, and not the meta-data.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

setxattr_BSD

public int setxattr_BSD(ByteBuffer path,
                        ByteBuffer name,
                        ByteBuffer value,
                        int flags,
                        int position)
Description copied from interface: FUSE26Operations
 Set extended attributes.
 
This is the FreeBSD version of the callback. If you want your application to respond properly to the setxattr call on all platforms, you need to implement both setxattr and setxattr_BSD.

Specified by:
setxattr_BSD in interface FUSE26Operations
Parameters:
path - (const char*)
name - (const char*)
value - (const char*)
flags - (int)
position - (uint32_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

setxattr

public int setxattr(ByteBuffer path,
                    ByteBuffer name,
                    ByteBuffer value,
                    int flags)
Description copied from interface: FUSE26Operations
 Set extended attributes.
 
This is the non-BSD version of the callback. If you want your application to respond properly to the setxattr call on all platforms, you need to implement both setxattr and setxattr_BSD.

Specified by:
setxattr in interface FUSE26Operations
Parameters:
path - (const char*)
name - (const char*)
value - (const char*)
flags - (int)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

getxattr_BSD

public int getxattr_BSD(ByteBuffer path,
                        ByteBuffer name,
                        ByteBuffer value,
                        int position)
Description copied from interface: FUSE26Operations
 Get extended attributes.
 
This is the FreeBSD version of the callback. If you want your application to respond properly to the getxattr call on all platforms, you need to implement both getxattr and getxattr_BSD.

Specified by:
getxattr_BSD in interface FUSE26Operations
Parameters:
path - (const char*)
name - (const char*)
value - (char*) (out)
position - (uint32_t)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

getxattr

public int getxattr(ByteBuffer path,
                    ByteBuffer name,
                    ByteBuffer value)
Description copied from interface: FUSE26Operations
 Get extended attributes.
 
This is the non-BSD version of the callback. If you want your application to respond properly to the getxattr call on all platforms, you need to implement both getxattr and getxattr_BSD.

Specified by:
getxattr in interface FUSE26Operations
Parameters:
path - (const char*)
name - (const char*)
value - (char*) (out)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

listxattr

public int listxattr(ByteBuffer path,
                     ByteBuffer namebuf)
Description copied from interface: FUSE26Operations
 List extended attributes.
 

Specified by:
listxattr in interface FUSE26Operations
Parameters:
path - (const char*)
namebuf - (char*) the buffer where we store the result.
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

removexattr

public int removexattr(ByteBuffer path,
                       ByteBuffer name)
Description copied from interface: FUSE26Operations
 Remove extended attributes.
 

Specified by:
removexattr in interface FUSE26Operations
Parameters:
path - (const char*)
name - (const char*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

opendir

public int opendir(ByteBuffer path,
                   FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Open directory.

 This method should check if the open operation is permitted for
 this  directory

 Introduced in version 2.3
 

Specified by:
opendir in interface FUSE26Operations
Parameters:
path - (const char*)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

readdir

public int readdir(ByteBuffer path,
                   FUSEFillDir filler,
                   long offset,
                   FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Read directory.

 This supersedes the old getdir() interface.  New applications
 should use this.

 The filesystem may choose between two modes of operation:

 1) The readdir implementation ignores the offset parameter, and
 passes zero to the filler function's offset.  The filler
 function will not return '1' (unless an error happens), so the
 whole directory is read in a single readdir operation.  This
 works just like the old getdir() method.

 2) The readdir implementation keeps track of the offsets of the
 directory entries.  It uses the offset parameter and always
 passes non-zero offset to the filler function.  When the buffer
 is full (or an error happens) the filler function will return
 '1'.

 Introduced in version 2.3
 

Specified by:
readdir in interface FUSE26Operations
Parameters:
path - (const char*)
filler - (fuse_fill_dir_t)
offset - (off_t)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

releasedir

public int releasedir(ByteBuffer path,
                      FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Release directory.

 Introduced in version 2.3
 

Specified by:
releasedir in interface FUSE26Operations
Parameters:
path - (const char*)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

fsyncdir

public int fsyncdir(ByteBuffer path,
                    boolean datasync,
                    FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Synchronize directory contents.

 If the datasync parameter is non-zero, then only the user data
 should be flushed, not the meta data

 Introduced in version 2.3
 

Specified by:
fsyncdir in interface FUSE26Operations
Parameters:
path - (const char*)
datasync - (int)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

init

public Object init(FUSEConnInfo conn)
Description copied from interface: FUSE26Operations
 Initialize filesystem.

 The return value will passed in the private_data field of
 fuse_context to all file operations and as a parameter to the
 destroy() method.

 Introduced in version 2.3
 Changed in version 2.6
 

Specified by:
init in interface FUSE26Operations
Parameters:
conn - (struct fuse_conn_info*)
Returns:
(optional) a return value that will be passed in the private_data field of fuse_context to all file operations and as a parameter to the destroy() method.

destroy

public void destroy(Object o)
Description copied from interface: FUSE26Operations
 Clean up filesystem.

 Called on filesystem exit.

 Introduced in version 2.3
 

Specified by:
destroy in interface FUSE26Operations

access

public int access(ByteBuffer path,
                  int mode)
Description copied from interface: FUSE26Operations
 Check file access permissions.

 This will be called for the access() system call.  If the
 'default_permissions' mount option is given, this method is not
 called.

 This method is not called under Linux kernel versions 2.4.x

 Introduced in version 2.5
 

Specified by:
access in interface FUSE26Operations
Parameters:
path - (const char*)
mode - (int)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

create

public int create(ByteBuffer path,
                  short mode,
                  FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Create and open a file.

 If the file does not exist, first create it with the specified
 mode, and then open it.

 If this method is not implemented or under Linux kernel
 versions earlier than 2.6.15, the mknod() and open() methods
 will be called instead.

 Introduced in version 2.5
 

Specified by:
create in interface FUSE26Operations
Parameters:
path - (const char*) path to the newly created file.
mode - (mode_t) the mode flags for the created file.
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

ftruncate

public int ftruncate(ByteBuffer path,
                     long length,
                     FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Change the size of an open file.

 This method is called instead of the truncate() method if the
 truncation was invoked from an ftruncate() system call.

 If this method is not implemented or under Linux kernel
 versions earlier than 2.6.15, the truncate() method will be
 called instead.

 Introduced in version 2.5
 

Specified by:
ftruncate in interface FUSE26Operations
Parameters:
path - (const char*)
length - (off_t)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

fgetattr

public int fgetattr(ByteBuffer path,
                    Stat stat,
                    FUSEFileInfo fi)
Description copied from interface: FUSE26Operations
 Get attributes from an open file.

 This method is called instead of the getattr() method if the
 file information is available.

 Currently this is only called after the create() method if that
 is implemented (see above).  Later it may be called for
 invocations of fstat() too.

 Introduced in version 2.5
 

Specified by:
fgetattr in interface FUSE26Operations
Parameters:
path - (const char*)
stat - (struct stat*)
fi - (struct fuse_file_info*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

lock

public int lock(ByteBuffer path,
                FUSEFileInfo fi,
                int cmd,
                Flock flock)
Description copied from interface: FUSE26Operations
 Perform POSIX file locking operation.

 The cmd argument will be either F_GETLK, F_SETLK or F_SETLKW.

 For the meaning of fields in 'struct flock' see the man page
 for fcntl(2).  The l_whence field will always be set to
 SEEK_SET.

 For checking lock ownership, the 'fuse_file_info->owner'
 argument must be used.

 For F_GETLK operation, the library will first check currently
 held locks, and if a conflicting lock is found it will return
 information without calling this method.  This ensures, that
 for local locks the l_pid field is correctly filled in.  The
 results may not be accurate in case of race conditions and in
 the presence of hard links, but it's unlikly that an
 application would rely on accurate GETLK results in these
 cases.  If a conflicting lock is not found, this method will be
 called, and the filesystem may fill out l_pid by a meaningful
 value, or it may leave this field zero.

 For F_SETLK and F_SETLKW the l_pid field will be set to the pid
 of the process performing the locking operation.

 Note: if this method is not implemented, the kernel will still
 allow file locking to work locally.  Hence it is only
 interesting for network filesystems and similar.

 Introduced in version 2.6
 

Specified by:
lock in interface FUSE26Operations
Parameters:
path - (const char*)
fi - (struct fuse_file_info*)
cmd - (int)
flock - (struct flock*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

utimens

public int utimens(ByteBuffer path,
                   Timespec accessTime,
                   Timespec modificationTime)
Description copied from interface: FUSE26Operations
 Change the access and modification times of a file with
 nanosecond resolution.

 Introduced in version 2.6
 

Specified by:
utimens in interface FUSE26Operations
Parameters:
path - (const char*)
accessTime - (const struct timespec)
modificationTime - (const struct timespec)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

bmap

public int bmap(ByteBuffer path,
                long blocksize,
                LongRef idx)
Description copied from interface: FUSE26Operations
 Map block index within file to block index within device.

 Note: This makes sense only for block device backed filesystems
 mounted with the 'blkdev' option

 Introduced in version 2.6
 

Specified by:
bmap in interface FUSE26Operations
Parameters:
path - (const char*)
blocksize - (size_t)
idx - (uint64_t*)
Returns:
0 if successful or an inverted error value from FUSEErrorValues otherwise.

getFUSECapabilities

public final FUSE26Capabilities getFUSECapabilities()
Specified by:
getFUSECapabilities in interface FUSE26FileSystem