NAME

Froody::Server - baseclass for Froody::Server

DESCRIPTION

A Froody server. use as:

#!/usr/bin/perl

use warnings;
use strict;

use Froody::Server;
Froody::Server->dispatch();

..in a CGI script that is a Froody endpoint.

This server accepts a CGI request as the Froody request, and will dispatch the method, and return the XML of the response as the result of the HTTP request. If the dispatcher throws an error, we catch it and wrap it in a Froody::Response object that represents the error.

You can pass a namespace to dispatch into to the dispatch() call, to override the default Froody::Dispatch namespace. This is strongly recommended, or your code will be fairly useless.

METHODS

dispatch()

Detects the environment that the Froody server is running under, assembles a request, and dispatches it. Replies to the request with the XML response.

dispatcher()

Returns a dispatcher object set up for this server with the correct request, response and error classes. I find this useful for getting a dispatcher object for testing against when I have a server class with lots of customization in.

send_header($response, $content_type)

Implemented by subclasses. Should send the headers to the client using the content type passed. Should call the $response's cookies method and dtrt with that.

send_body($bytes)

Implmented by subclasses. Sends the body of the connection. $bytes should be a rendered response.

handler

Handler for apache. Passes the request off to dispatch() and returns &Apache::OK if it succeeds.

content_type_for_type($type) / content_type_for_type($type, $header);

Gets and sets the header for a type of server.

Subclassing

There's serveral methods you might want to override in subclasses of these. In particular these methods define what helper classes this uses:

server_class
dispatch_class
request_class
error_class
response_class

BUGS

None known.

Please report any bugs you find via the CPAN RT system. http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Froody

AUTHOR

Copyright Fotango 2005. All rights reserved.

Please see the main Froody documentation for details of who has worked on this project.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Froody, Froody::Dispatch, Froody::Server::Standalone, Froody::Server::CGI, Froody::Server::Apache