=head1 NAME
IO::Mux::Handler::Read - any mux reader
=head1 INHERITANCE
IO::Mux::Handler::Read
is a IO::Mux::Handler
IO::Mux::Handler::Read is extended by
IO::Mux::Bundle
IO::Mux::File::Read
IO::Mux::Net::TCP
IO::Mux::Pipe::Read
=head1 SYNOPSIS
=head1 DESCRIPTION
This base-class defines the interface which every reader offers.
=head1 METHODS
=head2 Constructors
=over 4
=item IO::Mux::Handler::Read-E<gt>B<new>(OPTIONS)
-Option --Defined in --Default
fh IO::Mux::Handler <required>
name IO::Mux::Handler <stringified handle>
read_size 32768
=over 2
=item
fh
=> FILEHANDLE
=item
name
=> STRING
=item
read_size
=> INTEGER
=back
=item IO::Mux::Handler::Read-E<gt>B<
open
>(MODE, WHAT, OPTIONS)
See L<IO::Mux::Handler/
"Constructors"
>
=back
=head2 Accessors
=over 4
=item
$obj
-E<gt>B<fh>
See L<IO::Mux::Handler/
"Accessors"
>
=item
$obj
-E<gt>B<
fileno
>
See L<IO::Mux::Handler/
"Accessors"
>
=item
$obj
-E<gt>B<mux>
See L<IO::Mux::Handler/
"Accessors"
>
=item
$obj
-E<gt>B<name>
See L<IO::Mux::Handler/
"Accessors"
>
=item
$obj
-E<gt>B<readSize>([INTEGER])
The number of bytes requested at
each
read
.
=item
$obj
-E<gt>B<usesSSL>
See L<IO::Mux::Handler/
"Accessors"
>
=back
=head2 User interface
=head3 Connection
=over 4
=item
$obj
-E<gt>B<
close
>([CALLBACK])
See L<IO::Mux::Handler/
"Connection"
>
=item
$obj
-E<gt>B<timeout>([TIMEOUT])
See L<IO::Mux::Handler/
"Connection"
>
=back
=head3 Reading
=over 4
=item
$obj
-E<gt>B<
readline
>(CALLBACK)
Read a single line (bytes upto a LF or CRLF). After the whole line
has
arrived, the CALLBACK will be invoked
with
the received line as
parameter. that line is terminated by a LF (\n), even
when
the file
contains CRLF or CR endings.
At end of file, the
last
fragment will be returned.
=item
$obj
-E<gt>B<slurp>(CALLBACK)
Read all remaining data from a resource. After everything
has
been
read
, it will be returned as SCALAR (string reference)
example:
my
$pwd
=
$mux
->
open
(
'<'
,
'/etc/passwd'
);
my
$data
=
$pwd
->slurp;
my
$size
=
length
$$data
;
=back
=head2 Multiplexer
=head3 Connection
=over 4
=item
$obj
-E<gt>B<mux_init>(MUX, [HANDLER])
See L<IO::Mux::Handler/
"Connection"
>
=item
$obj
-E<gt>B<mux_remove>
See L<IO::Mux::Handler/
"Connection"
>
=item
$obj
-E<gt>B<mux_timeout>
See L<IO::Mux::Handler/
"Connection"
>
=back
=head3 Reading
=over 4
=item
$obj
-E<gt>B<mux_eof>(INPUT)
This is called
when
an end-of-file condition is present on the handle.
Like L<mux_input()|IO::Mux::Handler::Read/
"Reading"
>, it is also passed a reference to the input
buffer. You should consume the entire buffer or
else
it will just be lost.
=item
$obj
-E<gt>B<mux_except_flagged>(FILENO)
See L<IO::Mux::Handler/
"Reading"
>
=item
$obj
-E<gt>B<mux_input>(BUFFER)
Called
when
new input
has
arrived on the input. It is passed a
B<reference> to the input BUFFER. It must remove any input that
it you have consumed from the BUFFER, and leave any partially
received data in there.
example:
sub
mux_input
{
my
(
$self
,
$inbuf
) =
@_
;
while
(
$$inbuf
=~ s/^(.*?)\r?\n// )
{
$self
->process_command($1);
}
}
=item
$obj
-E<gt>B<mux_read_flagged>(FILENO)
See L<IO::Mux::Handler/
"Reading"
>
=back
=head3 Writing
=over 4
=item
$obj
-E<gt>B<mux_write_flagged>(FILENO)
See L<IO::Mux::Handler/
"Writing"
>
=back
=head3 Service
=head2 Helpers
=over 4
=item
$obj
-E<gt>B<extractSocket>(HASH)
=item IO::Mux::Handler::Read-E<gt>B<extractSocket>(HASH)
See L<IO::Mux::Handler/
"Helpers"
>
=item
$obj
-E<gt>B<fdset>(STATE, READ, WRITE, ERROR)
See L<IO::Mux::Handler/
"Helpers"
>
=item
$obj
-E<gt>B<show>
See L<IO::Mux::Handler/
"Helpers"
>
=back
=head1 SEE ALSO
This module is part of IO-Mux distribution version 0.11,
All modules in this suite:
L</Any::Daemon>,
L</IO::Mux>, and
L</IO::Mux::HTTP>.
Please post questions or ideas to F<perl
@overmeer
.net>
=head1 LICENSE
Copyrights 2011 by Mark Overmeer. For other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.