use APR::Request::CGI;
use APR::Request::Param;
+__PACKAGE__->mk_accessors( qw[apr pool] );
+
=head1 NAME
Catalyst::Engine::CGI::APR - The CGI APR Engine
=head1 DESCRIPTION
-This Catalyst engine uses C<APR::Request> for parsing of message body.
+This Catalyst engine uses C<APR::Request::CGI> for parsing of message body.
+
+=head1 METHODS
+
+=over 4
+
+=item $c->apr
+
+Contains the C<APR::Request::CGI> object.
+
+=item $c->pool
+
+Contains the C<APR::Pool> object.
+
+=back
=head1 OVERLOADED METHODS
my $c = shift;
my @params;
-
- $c->cgi->param->do( sub {
- my ( $field, $value ) = @_;
- push( @params, $field, $value );
- return 1;
- });
-
- $c->request->param(@params);
+
+ if ( my $table = $c->apr->param ) {
+
+ $table->do( sub {
+ my ( $field, $value ) = @_;
+ push( @params, $field, $value );
+ return 1;
+ });
+
+ $c->request->param(@params);
+ }
}
=item $c->prepare_request
sub prepare_request {
my $c = shift;
- $c->cgi( APR::Request::CGI->new( APR::Pool->new ) );
+ $c->pool( APR::Pool->new );
+ $c->apr( APR::Request::CGI->handle( $c->pool ) );
}
=item $c->prepare_uploads
my $c = shift;
my @uploads;
+
+ if ( my $body = $c->apr->body ) {
+
+ $body->param_class('APR::Request::Param');
- $c->cgi->upload->do( sub {
- my ( $field, $upload ) = @_;
+ $body->uploads( $c->pool )->do( sub {
+ my ( $field, $upload ) = @_;
- my $object = Catalyst::Request::Upload->new(
- filename => $upload->filename,
- size => $upload->size,
- tempname => $upload->tempname,
- type => $upload->type
- );
+ my $object = Catalyst::Request::Upload->new(
+ filename => $upload->upload_filename,
+ size => $upload->upload_size,
+ tempname => $upload->upload_tempname,
+ type => $upload->upload_type
+ );
- push( @uploads, $field, $object );
+ push( @uploads, $field, $object );
- return 1;
- });
+ return 1;
+ });
- $c->request->upload(@uploads);
+ $c->request->upload(@uploads);
+ }
}
=back
=head1 SEE ALSO
-L<Catalyst> L<Catalyst::Engine> L<Catalyst::Engine::CGI::Base> L<APR::Request>.
+L<Catalyst>, L<APR::Request::CGI>, L<Catalyst::Engine::CGI::Base>.
=head1 AUTHOR