|
NAMENet::FastCGI::IO - Provides functions to read and write FastCGI messages. SYNOPSIS # FCGI_Header
@values = read_header($fh);
$header = read_header($fh);
$result = write_header($fh, $type, $request_id, $content_length, $padding_length);
# FCGI_Record
@values = read_record($fh);
$record = read_record($fh);
$result = write_record($fh, $type, $request_id);
$result = write_record($fh, $type, $request_id, $content);
# FCGI_Record Stream
$result = write_stream($fh, $type, $request_id, $content);
$result = write_stream($fh, $type, $request_id, $content, $terminate);
# I/O ready
$result = can_read($fh, $timeout);
$result = can_write($fh, $timeout);
DESCRIPTIONProvides unbuffered blocking I/O functions to read and write FastCGI messages. FUNCTIONSread_headerAttempts to read a "FCGI_Header" from file handle $fh. Usage ($type, $request_id, $content_length, $padding_length)
= read_header($fh);
$header = read_header($fh);
say $header->{type};
say $header->{request_id};
say $header->{content_length};
say $header->{padding_length};
Arguments
Returns Upon successful completion, the return value of "parse_header" in Net::FastCGI::Protocol. Otherwise, a false value ("undef" in scalar context and an empty list in list context). If "read_header" reaches end-of-file before reading any octets, it returns a false value. If unsuccessful, "read_header" returns a false value and $! contains the error from the "sysread" call. If "read_header" encounters end-of-file after some but not all of the needed octets, the function returns a false value and sets $! to "EPIPE". Implementation The implementation calls "sysread" in a loop, restarting if "sysread" returns "undef" with $! set to "EINTR". If "sysread" does not provide all the requested octets, "read_header" continues to call "sysread" until either all the octets have been read, reaches end-of-file or an error occurs. read_recordAttempts to read a "FCGI_Record" from file handle $fh. Usage ($type, $request_id, $content)
= read_record($fh);
$record = read_record($fh);
say $record->{type};
say $record->{request_id};
Arguments
Returns Upon successful completion, the return value of "parse_record" in Net::FastCGI::Protocol. Otherwise, a false value ("undef" in scalar context and an empty list in list context). If "read_record" reaches end-of-file before reading any octets, it returns a false value. If unsuccessful, "read_record" returns a false value and $! contains the error from the "sysread" call. If "read_record" encounters end-of-file after some but not all of the needed octets, the function returns a false value and sets $! to "EPIPE". Implementation The implementation calls "sysread" in a loop, restarting if "sysread" returns "undef" with $! set to "EINTR". If "sysread" does not provide all the requested octets, "read_record" continues to call "sysread" until either all the octets have been read, reaches end-of-file or an error occurs. write_headerAttempts to write a "FCGI_Header" to file handle $fh. Usage $result = write_header($fh, $type, $request_id, $content_length, $padding_length); Arguments
Returns
Implementation The implementation calls "syswrite" in a loop, restarting if "syswrite" returns "undef" with $! set to "EINTR". If "syswrite" does not output all the requested octets, "write_header" continues to call "syswrite" until all the octets have been written or an error occurs. write_recordAttempts to write a "FCGI_Record" to file handle $fh. Usage $result = write_record($fh, $type, $request_id);
$result = write_record($fh, $type, $request_id, $content);
Arguments
Returns
Implementation The implementation calls "syswrite" in a loop, restarting if "syswrite" returns "undef" with $! set to "EINTR". If "syswrite" does not output all the requested octets, "write_record" continues to call "syswrite" until all the octets have been written or an error occurs. write_streamAttempts to write a "FCGI_Record" stream to file handle $fh. Usage $result = write_stream($fh, $type, $request_id, $content);
$result = write_stream($fh, $type, $request_id, $content, $terminate);
Arguments
Returns
Implementation The implementation calls "syswrite" in a loop, restarting if "syswrite" returns "undef" with $! set to "EINTR". If "syswrite" does not output all the requested octets, "write_stream" continues to call "syswrite" until all the octets have been written or an error occurs. can_readDetermines wheter or not the given file handle $fh is ready for reading within the given timeout $timeout. Usage $result = can_read($fh, $timeout); Arguments
Returns Upon successful completion, 0 or 1. Otherwise, "undef" and $! contains the "select" error. Implementation The implementation calls "select" in a loop, restarting if "select" returns -1 with $! set to "EINTR" and $timeout has not elapsed. can_writeDetermines wheter or not the given file handle $fh is ready for writing within the given timeout $timeout. Usage $result = can_write($fh, $timeout); Arguments
Returns Upon successful completion, 0 or 1. Otherwise, "undef" and $! contains the "select" error. Implementation The implementation calls "select" in a loop, restarting if "select" returns -1 with $! set to "EINTR" and $timeout has not elapsed. EXPORTSNone by default. All functions can be exported using the ":all" tag or individually. DIAGNOSTICS
SEE ALSO
AUTHORChristian Hansen "chansen@cpan.org" COPYRIGHTCopyright 2008-2010 by Christian Hansen. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
|