=encoding utf8

=head1 NAME

Any::Daemon::FCGI::Request - HTTP::Request with little extras

=head1 INHERITANCE

 Any::Daemon::FCGI::Request
   is a HTTP::Request

=head1 SYNOPSIS

# Instantiated by Any::Daemon::FCGI::ClientConn

=head1 DESCRIPTION

In the FCGI protocol, the web-site user's HTTP request is accompanied
by some additional information about the front-end web-server.  Also,
the headers are processed into parameters C<HTTP_*> and the body is
fed to STDIN.  The first thing this FCGI implementation does, is
undoing this mutilation: bringing back a HTTP::Request.  The
additional information is provided via some additional attributes.

=head1 METHODS

=over 4

=item Any::Daemon::FCGI::Request-E<gt>B<new>(%options)

Create a new request object.  This method is called by
L<Any::Daemon::FCGI::ClientConn|Any::Daemon::FCGI::ClientConn> each time it has collected all the data
for a new incoming message.  You probably should not call this yourself.

 -Option    --Default
  data        undef
  params      <required>
  request_id  <required>
  role        <required>
  stdin       <required>

=over 2

=item data => SCALAR

(Ref to string), the additional data for FILTER requests.

=item params => HASH

The parameters received from the client.

=item request_id => INTEGER

Sequence number as used in the FCGI protocol (always E<gt> 0, will get reused).

=item role => 'RESPONDER'|'AUTHORIZER'|'FILTER'

=item stdin => SCALAR

(Ref to string), the body of the message.  We use references to avoid
copying huge strings.

=back

=back

=head2 Accessors

=over 4

=item $obj-E<gt>B<data>()

Returns a reference to the request data.  The params may contain the
modification data as C<FCGI_DATA_LAST_MOD>.

=item $obj-E<gt>B<param>($name)

=item $obj-E<gt>B<params>()

=item $obj-E<gt>B<request_id>()

=item $obj-E<gt>B<role>()

=back

=head1 SEE ALSO

This module is part of Any-Daemon-HTTP distribution version 0.29,
built on November 04, 2019. Website: F<http://perl.overmeer.net/any-daemon/>

=head1 LICENSE

Copyrights 2013-2019 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.
See F<http://dev.perl.org/licenses/>

