NAME
POE::Component::Server::Bayeux::Request - A single Bayeux request
DESCRIPTION
Objects in this class represent a single Bayeux request made to a Bayeux server. Requests are instantiated with an HTTP::Request and HTTP::Response object. This class is responsible for parsing the request content into a JSON object, creating one or more POE::Component::Server::Bayeux::Message objects that represent the possible message types of the Bayeux protocol, and handling each one in turn.
CLASS METHODS
new ()
Requires 'request' (POE::Component::Server::HTTP::Request), 'response' (POE::Component::Server::HTTP::Response), and 'server_heap'. Returns init()'ed class object.
OBJECT METHODS
handle ()
Call after creating the request. Calls the pre_handle(), handle() methods on each message, possibly completing the request.
complete ()
Completes the request, calling the post_handle() method on the messages that need it.
PRIVATE METHODS
These methods are mainly called by messages during their handle() phase.
client ($id)
Returns a POE::Component::Server::Bayeux::Client object with the given id.
add_response ($response)
Adds a message response onto the stack of responses.
clear_stack ()
Clears all messages and responses.
add_post_handle ($message)
Adds a message to be handled in the post_handle() code.
init ()
Parses the POE::Component::Server::HTTP::Request object, extracting the JSON payload, creating a stack of POE::Component::Server::Bayeux::Message messages.
error ($message)
Convienence method to throw an error, returning to the client.
form_response (@messages)
Encodes the messages into the payload of the response
logger ()
Returns the server's logger.
subscribe ($client_id, $channel)
Passthru to the POE server's subscribe state
unsubscribe ($client_id, $channel)
Passthru to the POE server's unsubscribe state
publish ($client_id, $channel, $data)
Passthru to the POE server's publish state
COPYRIGHT
Copyright (c) 2008 Eric Waters and XMission LLC (http://www.xmission.com/). All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
The full text of the license can be found in the LICENSE file included with this module.
AUTHOR
Eric Waters <ewaters@uarc.com>