NAME
Fuse::Template::Sys - Moose role for system calls
DESCRIPTION
This role requires find_file()
and log()
.
Documentation is mainly copy/paste from Fuse.
It should be possible to use this role in other projects as well. I might even seperate it out as a standalone distribution some day.
ATTRIBUTES
root
Holds a Fuse::Template::Root object.
METHODS
getattr
@stat = $self->getattr($virtual_path);
Return value is the same format as from stat($file)
.
readlink
$bool = $self->readlink($virtual_path);
This is called when dereferencing symbolic links, to learn the target.
getdir
@files = $self->getdir($virtual_path);
Returns a list of filenames from the virtual dir.
This is used to obtain directory listings. Its opendir(), readdir(), filldir() and closedir() all in one call.
mknod
$errno = $self->mknod($virtual_path);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
This function is called for all non-directory, non-symlink nodes, not just devices.
mkdir
$errno = $self->mkdir($virtual_path, $mode);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to create a directory.
unlink
$errno = $self->unlink($virtual_path);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to remove a file, device, or symlink.
rmdir
$errno = $self->rmdir($virtual_path);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to remove a directory.
symlink
$errno = $self->symlink($virtual_path, $symlink_name);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to create a symbolic link.
rename
$errno = $self->rmdir($old_virtual_path, $new_virtual_path);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to rename a file, and/or move a file from one directory to another.
link
$errno = $self->link($virtual_path, $hardlink_name);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to create hard links.
chmod
$errno = $self->chmod($virtual_path, $mode);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to change permissions on a file/directory/device/symlink.
chown
$errno = $self->chown($virtual_path, $uid, $gid);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to change ownership of a file/directory/device/symlink.
truncate
$errno = $self->truncate($virtual_path, $offset);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to truncate a file, at the given offset.
utime
$errno = $self->utime($virtual_path, $actime, $modtime);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called to change access/modification times for a file/directory/device/symlink.
open
$errno = $self->open($virtual_path, $mode);
Called to open a file.
read
$ret = $self->read($virtual_path, $buf_size, $offset);
$ret
can be either $errno
or data read.
Called in an attempt to fetch a portion of the file.
write
$ret = $self->write($virtual_path, $buf_size, $offset);
$ret
can be either $errno
or length of data read.
This method will always return -&POSIX::EROFS
, since write support is not implemented.
Called in an attempt to write (or overwrite) a portion of the file.
statfs
@ret = $self->statfs;
@ret
can be on of:
($namelen, $files, $files_free, $blocks, $blocks_avail, $blocksize)
-ENOANO()
flush
$errno = $self->flush($virtual_path);
Called to synchronise any cached data. This is called before the file is closed. It may be called multiple times before a file is closed.
release
$errno = $self->release($virtual_path, $flags);
Called to indicate that there are no more references to the file. Called once for every file with the same pathname and flags as were passed to open.
fsync
$int = $self->fsync($virtual_path, $flags);
Called to synchronise the file's contents. If flags is non-zero, only synchronise the user data. Otherwise synchronise the user and meta data.
setxattr
$errno = $self->setxattr(
$virtual_path, $attr_name, $attr_value, $flags
);
Called to set the value of the named extended attribute.
Will always return -EOPNOTSUPP()
since write is not supported.
getxattr
$ret = $self->getxattr($virtual_path, $attr_name);
Called to get the value of the named extended attribute.
listxattr
@list = $self->listxattr;
Called to get the value of the named extended attribute.
removexattr
$errno = $self->removexattr($virtual_path, $attr_name);
This method will always return -&POSIX::EROFS
, since write support is not implemented.
AUTHOR
See Fuse::Template