Net-Async-HTTP-Server

 view release on metacpan or  search on metacpan

lib/Net/Async/HTTP/Server.pm  view on Meta::CPAN

}

=head2 make_request

   $request = $server->make_request( @args );

Invoked by the protocol stream handler to create a new request object
representing an incoming request. This is provided as a method for subclasses
to overload, if they wish to represent requests with subclasses of the basic
request representation.

=cut

sub make_request
{
   my $self = shift;
   return $self->{request_class}->new( @_ );
}

sub _received_request
{
   my $self = shift;
   my ( $request ) = @_;

   if( $metrics ) {
      $metrics->inc_gauge( requests_in_flight => );

      $metrics->inc_counter( requests => [ method => $request->method ] );
      $self->{request_received_timestamp}{$request} = $self->loop->time;
   }

   $self->invoke_event( on_request => $request );
}

sub _done_request
{
   my $self = shift;
   my ( $request ) = @_;

   if( $metrics ) {
      my $received_timestamp = delete $self->{request_received_timestamp}{$request};

      $metrics->dec_gauge( requests_in_flight => );

      $metrics->inc_counter( responses => [ method => $request->method, code => $request->response_status_code ] );
      $metrics->report_timer( request_duration => $self->loop->time - $received_timestamp );
      $metrics->report_distribution( response_bytes => $request->bytes_written );
   }
}

=head1 TODO

=over 2

=item *

Don't use L<HTTP::Message> objects as underlying implementation

=item *

Consider how to do streaming request inbound

=item *

Lots more testing

=back

=cut

=head1 AUTHOR

Paul Evans <leonerd@leonerd.org.uk>

=cut

0x55AA;



( run in 1.188 second using v1.01-cache-2.11-cpan-98e64b0badf )