Agent-TCLI-Package-Net
view release on metacpan or search on metacpan
lib/Agent/TCLI/Package/Net/HTTP.pm view on Meta::CPAN
# if not done, then do nothing and wait until we are.
elsif ( $request->command->[0] eq 'tget' && not $param->{'completed'} )
{
$self->Verbose("ProcessResponse: tget tries(".$param->{'try_count'}.
") rc(".$param->{'retry_count'}.") ",3);
return;
}
# cget will report for every try.
elsif ( $request->command->[0] eq 'cget' )
{
$txt = $param->{'url'}." ".
"resp=".$http_response->code()." ";
if ($param->{'retry_count'} > 1 )
{
$txt .= "try=".$param->{'try_count'}." ";
}
$self->Verbose("ProcessResponse: get txt(".$txt.$backtxt.") ",3);
$request->Respond($kernel, $txt.$backtxt);
return;
}
$self->Verbose("ProcessResponse: WHOOPS! id{".$id."} ",1,$request);
}
sub retry {
my ($kernel, $self, $id ) =
@_[KERNEL, OBJECT, ARG0 ];
my $txt;
$self->Verbose("retry: id(".$id.") ");
my $request = $self->requests->{$id}{'request'};
my $param = $self->requests->{$id}{'param'};
$param->{'try_count'}++ ;
# execution
$kernel->post( 'http-client' => 'request' => 'ProcessResponse' =>
GET($param->{'url'},
Connection => "Keep-Alive",
),
$id,
'ResponseProgress', #progress callback
'', #proxy override
);
}
sub ResponseProgress {
my ($kernel, $self, $gen_args, $call_args) =
@_[KERNEL, OBJECT, ARG0, ARG1 ];
$self->Verbose("ResponseProgress: \tEntering ".$self->name." " );
my $req = $gen_args->[0]; # HTTP::Request object being serviced
my $tag = $gen_args->[1]; # Request ID tag from.
my $got = $call_args->[0]; # Number of bytes retrieved so far.
my $tot = $call_args->[1]; # Total bytes to be retrieved.
my $oct = $call_args->[2]; # Chunk of raw octets received this time.
my $percent = $got / $tot * 100;
# printf(
# "-- %.0f%% [%d/%d]: %s\n", $percent, $got, $tot, $req->uri()
# );
my $request = $self->requests->{$tag}{'request'};
# Not doing anything yet.
}
=item show
This POE event handler executes the show commands.
=back
=cut
1;
#__END__
=head3 INHERITED METHODS
This module is an Object::InsideOut object that inherits from Agent::TCLI::Package::Base. It
inherits methods from both. Please refer to their documentation for more
details.
=head1 AUTHOR
Eric Hacker E<lt>hacker at cpan.orgE<gt>
=head1 BUGS
SHOULDS and MUSTS are currently not enforced.
Test scripts not thorough enough.
Probably many others.
=head1 LICENSE
Copyright (c) 2007, Alcatel Lucent, All rights resevred.
This package is free software; you may redistribute it
and/or modify it under the same terms as Perl itself.
=cut
( run in 3.545 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )