summaryrefslogtreecommitdiff
path: root/Xerl.pm
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2011-03-06 10:57:41 +0000
committerPaul Buetow <paul@buetow.org>2011-03-06 10:57:41 +0000
commit213033db33be271791f2d9ff1c9c44c0bed79f18 (patch)
tree1b3ff0d0eddfc7f6995afa67b5d3fc2ef8fa85a7 /Xerl.pm
initial xerl import to utils
Diffstat (limited to 'Xerl.pm')
-rw-r--r--Xerl.pm98
1 files changed, 98 insertions, 0 deletions
diff --git a/Xerl.pm b/Xerl.pm
new file mode 100644
index 0000000..bade547
--- /dev/null
+++ b/Xerl.pm
@@ -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;