NAME
Filesys::Virtual::Async - Base class for non blocking virtual
filesystems
SYNOPSIS
use base 'Filesys::Virtual::Async';
sub new { my $class = shift; $class->SUPER::new(@_); }
# then override the various methods
DESCRIPTION
The goal of Filesys::Virtual::Async is to provide an interface like
IO::AIO for a non blocking virtual filesystem
This is a base class, see the "SEE ALSO" section below
This module is still in flux to an extent. If you'd like to suggest
changes, please drop in the irc channel #poe on irc.perl.org and speak
with xantus[] or Apocalypse
WARNING
This is interface isn't solidified yet. It will change. I released this
module early due to demand. You have been warned.
OBJECT METHODS
new( root => $path );
root is optional, and defaults to /. root is prepended to all paths
after resolution
cwd()
Returns the current working directory (virtual)
root() or root( $path )
Gets or sets the root path. This path is prepended to the path
returned from _path_from_root
_path_from_root( $path )
Resolves a path, with the root path prepended.
This is a private method, do not document it in your subclass.
_resolve_path( $path )
Resolves a path to a normalized direct path based on the cwd,
allowing .. traversal, and the ~ home directory shortcut (if
home_path is defined)
For example, if the cwd is /foo/bar/baz, and $path is
/../../../../foo/../foo/./bar/../foo then /foo will be returned
This is a private method, do not document it in your subclass.
CALLBACK METHODS
All of these work exactly like the IO::AIO methods of the same name. Use
IO::AIO as a reference for these functions, but note that this in no way
requires you to use IO::AIO.
open()
close()
read()
write()
sendfile()
readahead()
stat()
lstat()
utime()
chown()
truncate()
chmod()
unlink()
mknod()
link()
symlink()
readlink()
rename()
mkdir()
rmdir()
readdir()
load()
copy()
move()
scandir()
rmtree()
fsync()
fdatasync()
SEE ALSO
Filesys::Virtual::Async::Plain
AUTHOR
David W Davis
RATING
You can rate this this module at
COPYRIGHT AND LICENSE
Copyright (c) 2009 by David W Davis, All rights reserved
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself