Provided by: libmojolicious-perl_4.63+dfsg-1_all
NAME
Mojo::Transaction - Transaction base class
SYNOPSIS
package Mojo::Transaction::MyTransaction; use Mojo::Base 'Mojo::Transaction'; sub client_read {...} sub client_write {...} sub server_read {...} sub server_write {...}
DESCRIPTION
Mojo::Transaction is an abstract base class for transactions.
EVENTS
Mojo::Transaction inherits all events from Mojo::EventEmitter and can emit the following new ones. connection $tx->on(connection => sub { my ($tx, $connection) = @_; ... }); Emitted when a connection has been assigned to transaction. finish $tx->on(finish => sub { my $tx = shift; ... }); Emitted when transaction is finished. resume $tx->on(resume => sub { my $tx = shift; ... }); Emitted when transaction is resumed.
ATTRIBUTES
Mojo::Transaction implements the following attributes. kept_alive my $kept_alive = $tx->kept_alive; $tx = $tx->kept_alive(1); Connection has been kept alive. local_address my $address = $tx->local_address; $tx = $tx->local_address('127.0.0.1'); Local interface address. local_port my $port = $tx->local_port; $tx = $tx->local_port(8080); Local interface port. remote_port my $port = $tx->remote_port; $tx = $tx->remote_port(8081); Remote interface port. req my $req = $tx->req; $tx = $tx->req(Mojo::Message::Request->new); HTTP request, defaults to a Mojo::Message::Request object. res my $res = $tx->res; $tx = $tx->res(Mojo::Message::Response->new); HTTP response, defaults to a Mojo::Message::Response object.
METHODS
Mojo::Transaction inherits all methods from Mojo::EventEmitter and implements the following new ones. client_close $tx->client_close; $tx->client_close(1); Transaction closed client-side, no actual connection close is assumed by default, used to implement user agents. client_read $tx->client_read($bytes); Read data client-side, used to implement user agents. Meant to be overloaded in a subclass. client_write my $bytes = $tx->client_write; Write data client-side, used to implement user agents. Meant to be overloaded in a subclass. connection my $connection = $tx->connection; $tx = $tx->connection($connection); Connection identifier or socket. error my $err = $tx->error; my ($err, $code) = $tx->error; Error and code. is_finished my $bool = $tx->is_finished; Check if transaction is finished. is_websocket my $false = $tx->is_websocket; False. is_writing my $bool = $tx->is_writing; Check if transaction is writing. resume $tx = $tx->resume; Resume transaction. remote_address my $address = $tx->remote_address; $tx = $tx->remote_address('127.0.0.1'); Remote interface address. server_close $tx->server_close; Transaction closed server-side, used to implement web servers. server_read $tx->server_read($bytes); Read data server-side, used to implement web servers. Meant to be overloaded in a subclass. server_write my $bytes = $tx->server_write; Write data server-side, used to implement web servers. Meant to be overloaded in a subclass. success my $res = $tx->success; Returns the Mojo::Message::Response object from "res" if transaction was successful or "undef" otherwise. Connection and parser errors have only a message in "error", 400 and 500 responses also a code. # Sensible exception handling if (my $res = $tx->success) { say $res->body } else { my ($err, $code) = $tx->error; say $code ? "$code response: $err" : "Connection error: $err"; }
SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.