shell bypass 403
=head1 NAME
AnyEvent::IO::IOAIO - AnyEvent::IO backend based on IO::AIO
=head1 SYNOPSIS
use AnyEvent::IO;
=head1 DESCRIPTION
This is the L<IO::AIO>-based backend of L<AnyEvent::IO> (via
L<AnyEvent::AIO>). All I/O operations it implements are done
asynchronously.
=head1 FUNCTIONS
=over 4
=cut
package AnyEvent::IO::IOAIO;
use AnyEvent (); BEGIN { AnyEvent::common_sense }
our $VERSION = $AnyEvent::VERSION;
package AnyEvent::IO;
use IO::AIO 4.13 ();
use AnyEvent::AIO ();
our $MODEL = "AnyEvent::IO::IOAIO";
sub aio_load($$) {
my ($cb, $data) = $_[1];
IO::AIO::aio_load $_[0], $data, sub { $cb->($_[0] >= 0 ? $data : ()) };
}
sub aio_open($$$$) {
my $cb = $_[3];
IO::AIO::aio_open $_[0], $_[1], $_[2], sub { $cb->($_[0] or ()) };
}
sub aio_close($$) {
my $cb = $_[1];
IO::AIO::aio_close $_[0], sub { $cb->($_[0] >= 0 ? 1 : ()) };
}
sub aio_seek($$$$) {
my ($cb) = $_[3];
IO::AIO::aio_seek $_[0], $_[1], $_[2], sub { $cb->($_[0] >= 0 ? $_[0] : ()) };
}
sub aio_read($$$) {
my ($cb, $data) = $_[2];
IO::AIO::aio_read $_[0], undef, $_[1], $data, 0, sub { $cb->($_[0] >= 0 ? $data : ()) };
}
sub aio_write($$$) {
my $cb = $_[2];
IO::AIO::aio_write $_[0], undef, (length $_[1]), $_[1], 0,
sub { $cb->($_[0] >= 0 ? $_[0] : ()) };
}
sub aio_truncate($$$) {
my $cb = $_[2];
IO::AIO::aio_truncate $_[0], $_[1], sub { $cb->($_[0] ? () : 1) };
}
sub aio_utime($$$$) {
my $cb = $_[3];
IO::AIO::aio_utime $_[0], $_[1], $_[2], sub { $cb->($_[0] ? () : 1) };
}
sub aio_chown($$$$) {
my $cb = $_[3];
IO::AIO::aio_chown $_[0], $_[1], $_[2], sub { $cb->($_[0] ? () : 1) };
}
sub aio_chmod($$$) {
my $cb = $_[2];
IO::AIO::aio_chmod $_[0], $_[1], sub { $cb->($_[0] ? () : 1) };
}
sub aio_stat($$) {
my $cb = $_[1];
IO::AIO::aio_stat $_[0], sub { $cb->($_[0] ? () : 1) };
}
sub aio_lstat($$) {
my $cb = $_[1];
IO::AIO::aio_lstat $_[0], sub { $cb->($_[0] ? () : 1) }
}
sub aio_link($$$) {
my $cb = $_[2];
IO::AIO::aio_link $_[0], $_[1], sub { $cb->($_[0] ? () : 1) };
}
sub aio_symlink($$$) {
my $cb = $_[2];
IO::AIO::aio_symlink $_[0], $_[1], sub { $cb->($_[0] ? () : 1) };
}
sub aio_readlink($$) {
my $cb = $_[1];
IO::AIO::aio_readlink $_[0], sub { $cb->(defined $_[0] ? $_[0] : ()) };
}
sub aio_rename($$$) {
my $cb = $_[2];
IO::AIO::aio_rename $_[0], $_[1], sub { $cb->($_[0] ? () : 1) };
}
sub aio_unlink($$) {
my $cb = $_[1];
IO::AIO::aio_unlink $_[0], sub { $cb->($_[0] ? () : 1) };
}
sub aio_mkdir($$$) {
my $cb = $_[2];
IO::AIO::aio_mkdir $_[0], $_[1], sub { $cb->($_[0] ? () : 1) };
}
sub aio_rmdir($$) {
my $cb = $_[1];
IO::AIO::aio_rmdir $_[0], sub { $cb->($_[0] ? () : 1) };
}
sub aio_readdir($$) {
my $cb = $_[1];
IO::AIO::aio_readdirx $_[0], IO::AIO::READDIR_DIRS_FIRST | IO::AIO::READDIR_STAT_ORDER,
sub { $cb->($_[0] or ()); };
}
=back
=head1 SEE ALSO
L<AnyEvent::IO>, L<AnyEvent>.
=head1 AUTHOR
Marc Lehmann <schmorp@schmorp.de>
http://anyevent.schmorp.de
=cut
1