/usr/local/CPAN/Pangloss/Pangloss/Apache/Handler.pm
package Pangloss::Apache::Handler;
use strict;
use warnings::register;
use Apache;
use Apache::Constants qw(:response);
use OpenFrame::Response qw( ofOK ofREDIRECT ofDECLINE ofERROR );
use base qw( Pangloss::WebApp );
use accessors qw( response_seg );
our $VERSION = ((require Pangloss::Version), $Pangloss::VERSION)[1];
our $REVISION = (split(/ /, ' $Revision: 1.10 $ '))[2];
our $WEBAPP;
warn( "($$) starting up...\n" ) if warnings::enabled;
#------------------------------------------------------------------------------
# Class methods
sub handler ($$) {
my $class = shift;
my $request = shift;
$WEBAPP ||= $class->new;
$WEBAPP->handle_request( $request );
}
#------------------------------------------------------------------------------
# WebApp methods
sub handle_request {
my $self = shift;
my $request = shift;
# OF::Seg::Apache returns status as the pipeline production
my $response = $self->SUPER::handle_request( $request );
return DECLINED if (not defined $response or $response->code == ofDECLINE);
return OK;
}
# TODO: patch Pipeline::Config to add cleanups feature and remove this
sub init_controller {
my $self = shift;
my $controller = $self->SUPER::init_controller(@_);
use OpenFrame::Segment::Apache::Response;
$self->response_seg( OpenFrame::Segment::Apache::Response->new );
return $controller;
}
# TODO: patch Pipeline::Config to add cleanups feature and remove this
sub create_cleanups {
my $self = shift;
return [ $self->response_seg ];
}
1;