Catalyst::Engine::Zeus - Catalyst Zeus Engine


Catalyst-Engine-Zeus documentation Contained in the Catalyst-Engine-Zeus distribution.

Index


Code Index:

NAME

Top

Catalyst::Engine::Zeus - Catalyst Zeus Engine

SYNOPSIS

Top

See Catalyst.

DESCRIPTION

Top

This is the Catalyst engine specialized for Zeus Web Server V4.

OVERLOADED METHODS

Top

This class overloads some methods from Catalyst::Engine::Zeus::Base and Catalyst::Engine::CGI.

$c->prepare_body
$c->prepare_parameters
$c->prepare_request($r)
$c->prepare_uploads

BUGS

Top

There is a bug in Zeus::ModPerl::Request that keeps us from using it so we are currently reverting back to CGI for params and uploads.

SEE ALSO

Top

Catalyst Catalyst::Engine::Zeus::Base, Catalyst::Engine::CGI.

AUTHOR

Top

Christian Hansen ch@ngmedia.com

COPYRIGHT

Top


Catalyst-Engine-Zeus documentation Contained in the Catalyst-Engine-Zeus distribution.
package Catalyst::Engine::Zeus;

use strict;
use base qw[Catalyst::Engine::Zeus::Base Catalyst::Engine::CGI];

our $VERSION = '0.01';

sub prepare_body { 
    shift->Catalyst::Engine::CGI::prepare_body(@_);
}

sub prepare_parameters { 
    shift->Catalyst::Engine::CGI::prepare_parameters(@_);
}

sub prepare_request {
    my ( $c, $r, @arguments ) = @_;
    
    unless ( $ENV{REQUEST_METHOD} ) {

        $ENV{CONTENT_TYPE}   = $r->header_in("Content-Type");
        $ENV{CONTENT_LENGTH} = $r->header_in("Content-Length");
        $ENV{QUERY_STRING}   = $r->args;
        $ENV{REQUEST_METHOD} = $r->method;

        my $cleanup = sub {
            delete( $ENV{$_} ) for qw( CONTENT_TYPE
                                       CONTENT_LENGTH
                                       QUERY_STRING
                                       REQUEST_METHOD );
        };

        $r->register_cleanup($cleanup);
    }

    $r->register_cleanup(\&CGI::_reset_globals);

    $c->SUPER::prepare_request($r);
    $c->Catalyst::Engine::CGI::prepare_request(@arguments);
}

sub prepare_uploads { 
    shift->Catalyst::Engine::CGI::prepare_uploads(@_);
}

1;