Provided by: libnetsds-perl_1.301-3_all bug

NAME

       NetSDS::App::FCGI - FastCGI applications superclass

SYNOPSIS

               # Run application
               MyFCGI->run();

               1;

               # Application package itself
               package MyFCGI;

               use base 'NetSDS::App::FCGI';

               sub process {
                       my ($self) = @_;

                       $self->data('Hello World');
                       $self->mime('text/plain');
                       $self->charset('utf-8');

               }

DESCRIPTION

       "NetSDS::App::FCGI" module contains superclass for FastCGI applications.  This class is
       based on "NetSDS::App" module and inherits all its functionality like logging,
       configuration processing, etc.

CLASS API

       new(%params) - class constructor
           Normally constructor of application framework shouldn't be invoked directly.

       cgi() - accessor to CGI.pm request handler
                   my $https_header = $self->cgi->https('X-Some-Header');

       status([$new_status]) - set response HTTP status
           Paramters: new status to set

           Returns: response status value

                   $self->status('200 OK');

       mime() - set response MIME type
           Paramters: new MIME type for response

                   $self->mime('text/xml'); # output will be XML data

       charset() - set response character set if necessary
                   $self->mime('text/plain');
                   $self->charset('koi8-r'); # ouput as KOI8-R text

       data($new_data) - set response data
           Paramters: new data "as is"

                   $self->mime('text/plain');
                   $self->data('Hello world!');

       redirect($redirect_url) - send HTTP redirect
           Paramters: new URL (relative or absolute)

           This method send reponse with 302 status and new location.

                   if (havent_data()) {
                           $self->redirect('http://www.google.com'); # to google!
                   };

       cookie() -
           Paramters:

           Returns:

           This method provides.....

       headers($headers_hashref) - set/get response HTTP headers
           Paramters: new headers as hash reference

                   $self->headers({
                           'X-Beer' => 'Guiness',
                   );

       main_loop() - main FastCGI loop
           Paramters: none

           This method implements common FastCGI (or CGI) loop.

       set_cookie(%params) - set cookie
           Paramters: hash (name, value, expires)

                   $self->set_cookie(name => 'sessid', value => '343q5642653476', expires => '+1h');

       get_cookie(%params) - get cookie by name
           Paramters: cookie name

           Returns cookie value by it's name

                   my $sess = $self->get_cookie('sessid');

       param($name) - CGI request parameter
           Paramters: CGI parameter name

           Returns: CGI parameter value

           This method returns CGI parameter value by it's name.

                   my $cost = $self->param('cost');

       url_param($name) - CGI request parameter
           Paramters: URL parameter name

           Returns: URL parameter value

           This method works similar to param() method, but returns only parameters from the
           query string.

                   my $action = $self->url_param('a');

       http($http_field) - request HTTP header
           Paramters: request header name

           Returns: header value

           This method returns HTTP request header value by name.

                   my $beer = $self->http('X-Beer');

       https($https_field) - request HTTPS header
           This method returns HTTPS request header value by name and is almost the same as
           http() method except of it works with SSL requests.

                   my $beer = $self->https('X-Beer');

       raw_cookie() - get raw cookie data
           Just proxying "raw_cookie()" method from CGI.pm

       user_agent() - User-Agent request header
                   my $ua_info = $self->user_agent();

       request_method() - HTTP request method
                   if ($self->request_method eq 'POST') {
                           $self->log("info", "Something POST'ed from client");
                   }

       script_name() - CGI script name
           Returns: script name from CGI.pm

       path_info() - get PATH_INFO value
                   if ($self->path_info eq '/help') {
                           $self->data('Help yourself');
                   }

       remote_host() - remote (client) host name
                   warn "Client from: " . $self->remote_host();

       remote_addr() - remote (client) IP address
           Returns: IP address of client from REMOTE_ADDR environment

                   if ($self->remote_addr eq '10.0.0.1') {
                           $self->data('Welcome people from our gateway!');
                   }

       _set_req_cookies() - fetching request cookies (internal method)
           Fetching cookies from HTTP request to object "req_cookies" variable.

EXAMPLES

       See "samples" catalog for more example code.

SEE ALSO

       CGI, CGI::Fast, NetSDS::App

AUTHOR

       Michael Bochkaryov <misha@rattler.kiev.ua>

LICENSE

       Copyright (C) 2008-2009 Net Style Ltd.

       This program is free software; you can redistribute it and/or modify it under the terms of
       the GNU General Public License as published by the Free Software Foundation; either
       version 2 of the License, or (at your option) any later version.

       This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
       without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
       See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with this program;
       if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
       MA  02111-1307  USA