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

   <http://xant.us/>

AUTHOR
   David W Davis <[email protected]>

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