diff options
| author | Paul Buetow <paul@buetow.org> | 2011-03-06 10:57:41 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2011-03-06 10:57:41 +0000 |
| commit | 213033db33be271791f2d9ff1c9c44c0bed79f18 (patch) | |
| tree | 1b3ff0d0eddfc7f6995afa67b5d3fc2ef8fa85a7 /Xerl.pm | |
initial xerl import to utils
Diffstat (limited to 'Xerl.pm')
| -rw-r--r-- | Xerl.pm | 98 |
1 files changed, 98 insertions, 0 deletions
@@ -0,0 +1,98 @@ +# Xerl (c) 2005-2009, Dipl.-Inform. (FH) Paul C. Buetow +# +# E-Mail: xerl@dev.buetow.org WWW: http://xerl.buetow.org +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of P. B. Labs nor the names of its contributors may +# be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED Paul C. Buetow ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT Paul C. Buetow BE LIABLE FOR ANY DIRECT, +# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +package Xerl; + +use strict; +use warnings; + +use CGI::Carp 'fatalsToBrowser'; +use Time::HiRes 'gettimeofday'; + +use Xerl::Base; +use Xerl::Main::Global; +use Xerl::Page::Configure; +use Xerl::Page::Document; +use Xerl::Page::Parameter; +use Xerl::Page::Request; +use Xerl::Page::Templates; +use Xerl::Plugins::Session; + +sub run($) { + my Xerl $self = $_[0]; + my $time = [gettimeofday]; + + my Xerl::Page::Request $request = + Xerl::Page::Request->new( request => $ENV{REQUEST_URI} ); + + $request->parse(); + my Xerl::Page::Configure $config = + Xerl::Page::Configure->new( config => $self->get_config(), %$request ); + + $config->parse(); + + # TODO: Plugin API + unless ( $config->sessionsdisable_exists() ) { + my Xerl::Plugins::Session $session = + Xerl::Plugins::Session->new( config => $config ); + + $session->process(); + $config->set_session($session); + } + + my Xerl::Page::Parameter $parameter = + Xerl::Page::Parameter->new( config => $config ); + + $parameter->parse(); + + if ( $config->document_exists() ) { + my Xerl::Page::Document $document = + Xerl::Page::Document->new( config => $config ); + + $document->parse(); + + } + else { + my Xerl::Page::Templates $templates = + Xerl::Page::Templates->new( config => $config ); + + $templates->parse(); + $templates->print($time); + } + + + # This function gets always called if the scripts ends. + # The script may also end on another location. + Xerl::Main::Global::SHUTDOWN(); + + # Never reach this point + return undef; +} + +1; |
