NAME
Mojo::Transaction - Transaction Base Class
SYNOPSIS
DESCRIPTION
Mojo::Transaction is an abstract base class for transactions.
ATTRIBUTES
Mojo::Transaction implements the following attributes.
connection
my
$connection
=
$tx
->connection;
$tx
=
$tx
->connection(
$connection
);
Connection identifier or socket.
keep_alive
my
$keep_alive
=
$tx
->keep_alive;
$tx
=
$tx
->keep_alive(1);
Connection can be kept alive.
kept_alive
my
$kept_alive
=
$tx
->kept_alive;
$tx
=
$tx
->kept_alive(1);
Connection has been kept alive.
local_address
my
$local_address
=
$tx
->local_address;
$tx
=
$tx
->local_address(
$address
);
Local interface address.
local_port
my
$local_port
=
$tx
->local_port;
$tx
=
$tx
->local_port(
$port
);
Local interface port.
on_finish
my
$cb
=
$tx
->on_finish;
$tx
=
$tx
->on_finish(
sub
{...});
Callback signaling that the transaction has been finished.
$tx
->on_finish(
sub
{
my
$self
=
shift
;
});
on_resume
my
$cb
=
$tx
->on_resume;
$tx
=
$tx
->on_resume(
sub
{...});
Callback to be invoked whenever the transaction is resumed.
previous
my
$previous
=
$tx
->previous;
$tx
=
$tx
->previous(Mojo::Transaction->new);
Previous transaction that triggered this followup transaction.
remote_address
my
$remote_address
=
$tx
->remote_address;
$tx
=
$tx
->remote_address(
$address
);
Remote interface address.
remote_port
my
$remote_port
=
$tx
->remote_port;
$tx
=
$tx
->remote_port(
$port
);
Remote interface port.
METHODS
Mojo::Transaction inherits all methods from Mojo::Base and implements the following new ones.
client_read
$tx
=
$tx
->client_read(
$chunk
);
Read and process client data.
client_write
my
$chunk
=
$tx
->client_write;
Write client data.
error
my
$message
=
$message
->error;
my
(
$message
,
$code
) =
$message
->error;
Parser errors and codes.
is_done
my
$done
=
$tx
->is_done;
Check if transaction is done.
is_websocket
my
$is_websocket
=
$tx
->is_websocket;
Check if transaction is a WebSocket.
is_writing
my
$writing
=
$tx
->is_writing;
Check if transaction is writing.
req
my
$req
=
$tx
->req;
Transaction request, usually a Mojo::Message::Request object.
res
my
$res
=
$tx
->res;
Transaction response, usually a Mojo::Message::Response object.
resume
$tx
=
$tx
->resume;
Resume transaction.
server_close
$tx
=
$tx
->server_close;
Transaction closed.
server_read
$tx
=
$tx
->server_read(
$chunk
);
Read and process server data.
server_write
my
$chunk
=
$tx
->server_write;
Write server data.
success
my
$res
=
$tx
->success;
Returns the Mojo::Message::Response object (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. Note that this method is EXPERIMENTAL and might change without warning!
if
(
my
$res
=
$tx
->success) {
$res
->body;
}
else
{
my
(
$message
,
$code
) =
$tx
->error;
if
(
$code
) {
"$code $message response.\n"
;
}
else
{
"Connection error: $message\n"
;
}
}
Error messages can be accessed with the error
method of the transaction object.