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 <xantus@cpan.org>
RATING
You can rate this this module at http://cpanratings.perl.org/rate/?distribution=Filesys::Virtual::Async
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