/Filesys-Virtual-Async

Release history of Filesys-Virtual-Async

Primary LanguagePerl

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 <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