NAME
DiaColloDB::WWW::Handler - diachronic collocation db, www wrappers: abstract handler class API
SYNOPSIS
##========================================================================
## PRELIMINARIES
##========================================================================
## API
$h
=
$class_or_obj
->new(
%options
);
$bool
=
$h
->prepare(
$server
,
$path
);
$rsp
=
$h
->run(
$server
,
$clientConn
,
$httpRequest
);
undef
=
$h
->finish(
$server
,
$clientConn
);
##========================================================================
## Generic Utilities
$rsp
=
$h
->headResponse();
$rsp
=
$CLASS_OR_OBJECT
->response(
$code
=RC_OK,
$msg
=status_message(
$code
),
$hdr
,
$content
);
undef
=
$h
->cerror(
$csock
,
$status
=RC_INTERNAL_SERVER_ERROR,
@msg
);
$rsp
=
$h
->dumpResponse(\
$contentRef
,
%opts
);
DESCRIPTION
DiaColloDB::WWW::Handler is an abstract API for request handlers used by DiaColloDB::WWW::Server.
Globals
- Variable: @ISA
-
DiaColloDB::WWW::Handler inherits from DiaColloDB::Logger.
API
- new
-
$h
=
$class_or_obj
->new(
%options
);
constructor.
- run
-
$rsp
=
$h
->run(
$server
,
$clientConn
,
$httpRequest
);
Handle a single request. Parameters:
- $server
-
The server which received the request, a DiaColloDB::WWW::Server object.
- $clientConn
-
The client connect socket to which the response is to be sent.
- $httpRequest
-
An HTTP::Request object representing the client request.
The method should return a HTTP::Response object to be passed back to the client. If the call die()s or returns
undef
,$server
should generate an appropriate error response and send it to the client instead if it the connection is still open.This method may return the data to the client itself; if so, it should close the client connection (
$csock->shutdown(2); $csock->close()
) and returnundef
to prevent bogus error messages. - finish
-
undef
=
$h
->finish(
$server
,
$clientConn
);
Clean up handler state after run(); default implementation does nothing.
Generic Utilities
- headResponse
-
$rsp
=
$h
->headResponse();
$rsp
=
$h
->headResponse(\
@headers
);
$rsp
=
$h
->headResponse(
$httpHeaders
);
Rudimentary handling for HEAD requests; always returns HTTP::Status::RC_OK.
- response
-
$rsp
=
$CLASS_OR_OBJECT
->response(
$code
,
$msg
,
$hdr
,
$content
);
Generate an HTTP::Response object with status code
$code
, status message$msg
, header(s)$hdr
, and (optional) content$content
.$code
defaults to HTTP::Status::RC_OK,$msg
defaults to status_message($code), adn$hdr
may be an HTTP::Headers object, an ARRAY-ref or a HASH-ref. Wraps HTTP::Response->new(). - cerror
-
undef
=
$h
->cerror(
$csock
,
$status
=RC_INTERNAL_SERVER_ERROR,
@msg
);
Creates an error response and sends it to the client socket; also logs the error at level ($c->{logError}||'warn') and shuts down the socket.
- dumpResponse
-
$rsp
=
$h
->dumpResponse(\
$contentRef
,
%opts
);
Create and return a new data-dump response. Known %opts:
raw
=>
$bool
,
##-- return raw data (text/plain) ; default=$h->{returnRaw}
type
=>
$mimetype
,
##-- mime type if not raw mode
charset
=>
$enc
,
##-- character set, if not raw mode
filename
=>
$file
,
##-- attachment name, if not raw mode
AUTHOR
Bryan Jurish <moocow@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2016 by Bryan Jurish
This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.
SEE ALSO
DiaColloDB::WWW::Handler::cgi(3pm), DiaColloDB::WWW::Handler::static(3pm), DiaColloDB::WWW::Server(3pm), perl(1), ...