GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  MOJO::TRANSACTION (3)

.ds Aq ’

NAME

Mojo::Transaction - Transaction base class

CONTENTS

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, like Mojo::Transaction::HTTP and Mojo::Transaction::WebSocket.

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.

ATTRIBUTES

Mojo::Transaction implements the following attributes.

    kept_alive



  my $bool = $tx->kept_alive;
  $tx      = $tx->kept_alive($bool);



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.

    original_remote_address



  my $address = $tx->original_remote_address;
  $tx         = $tx->original_remote_address(127.0.0.1);



Remote interface address.

    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_read



  $tx->client_read($bytes);



Read data client-side, used to implement user agents such as Mojo::UserAgent. Meant to be overloaded in a subclass.

    client_write



  my $bytes = $tx->client_write;



Write data client-side, used to implement user agents such as Mojo::UserAgent. Meant to be overloaded in a subclass.

    closed



  $tx = $tx->closed;



Same as completed, but also indicates that all transaction data has been sent.

    completed



  $tx = $tx->completed;



Low-level method to finalize transaction.

    connection



  my $id = $tx->connection;
  $tx    = $tx->connection($id);



Connection identifier.

    error



  my $err = $tx->error;



Get request or response error and return undef if there is no error, commonly used together with success.



  # Longer version
  my $err = $tx->req->error || $tx->res->error;

  # Check for different kinds of errors
  if (my $err = $tx->error) {
    die "$err->{code} response: $err->{message}" if $err->{code};
    die "Connection error: $err->{message}";
  }



    is_finished



  my $bool = $tx->is_finished;



Check if transaction is finished.

    is_websocket



  my $bool = $tx->is_websocket;



False, this is not a Mojo::Transaction::WebSocket object.

    remote_address



  my $address = $tx->remote_address;
  $tx         = $tx->remote_address(127.0.0.1);



Same as original_remote_address or the last value of the X-Forwarded-For header if req has been performed through a reverse proxy.

    server_read



  $tx->server_read($bytes);



Read data server-side, used to implement web servers such as Mojo::Server::Daemon. Meant to be overloaded in a subclass.

    server_write



  my $bytes = $tx->server_write;



Write data server-side, used to implement web servers such as Mojo::Server::Daemon. 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 = $tx->error;
    die "$err->{code} response: $err->{message}" if $err->{code};
    die "Connection error: $err->{message}";
  }



SEE ALSO

Mojolicious, Mojolicious::Guides, <http://mojolicious.org>.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 MOJO::TRANSACTION (3) 2016-03-15

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.