AC-MrGamoo
    
    
  
  
  
view release on metacpan or search on metacpan
lib/AC/MrGamoo/API/Client.pm view on Meta::CPAN
sub new {
    my $class = shift;
    my $addr  = shift;
    my $port  = shift;
    my $info  = shift;
    my $req   = shift;
    my $data  = shift;
    debug("new client type: $req->{type} to $addr:$port");
    my $send = AC::MrGamoo::Protocol->encode_request( $req, $data );
    my $me   = $class->SUPER::new( $addr, $port,
                                 info	 => "client $req->{type} to $addr:$port; $info",
                                 request => $send,
                                );
    return $me;
}
sub start {
    my $me = shift;
    $me->set_callback('timeout',  \&_timeout);
    $me->set_callback('read',     \&_read);
    $me->set_callback('shutdown', \&_shutdown);
    $me->SUPER::start();
    $me->timeout_rel($TIMEOUT);
    $me->write( $me->{request} );
    return $me;
}
sub _timeout {
    my $me = shift;
    $me->shut();
}
    
  
  
  lib/AC/MrGamoo/Job/Task.pm view on Meta::CPAN
}
sub failed {
    my $me   = shift;
    my $job  = shift;
    my $why  = shift;
    debug("task failed: $why $me->{status_time}");
    return if $job->something_failed();
    $me->SUPER::failed($job, 'task');
    $me->{info}->failed( $me, $job );
    if( $why eq 'timeout' ){
        $me->abort($job)
    }else{
        # $job->_try_to_do_something();
    }
}
sub finished {
    my $me   = shift;
    my $job  = shift;
    my $why  = shift;
    debug('task finish');
    $me->SUPER::finished($job, 'task');
    $me->{info}->finished( $me, $job );
    $job->_try_to_do_something();
}
sub abort {
    my $me  = shift;
    my $job = shift;
    debug("aborting task $me->{id}");
    
  
  
  lib/AC/MrGamoo/Job/Xfer.pm view on Meta::CPAN
}
sub failed {
    my $me   = shift;
    my $job  = shift;
    my $why  = shift;
    debug("xfer failed: $why");
    return if $job->something_failed();
    $me->SUPER::failed($job, 'xfer');
    $me->{info}->failed( $me, $job );
    # $job->_try_to_do_something() unless $why eq 'timeout';
}
sub finished {
    my $me   = shift;
    my $job  = shift;
    debug('xfer finish');
    my $server = $me->{server};
    my $file   = $me->{info}{dstname} || $me->{info}{filename};
    $me->SUPER::finished($job, 'xfer');
    $me->{info}->finished( $me, $job );
    # add to server_info.has_files
    # add to file_info, tmp_file
    $job->{server_info}{$server}{has_files}{$file} = 1;
    push @{ $job->{file_info}{$file}{location} }, $server;
    push @{$job->{tmp_file}}, { filename => $file, server => $server };
    my $limit = $job->{plan}{nserver} * 1.5;
    
  
  
  lib/AC/MrGamoo/Kibitz/Client.pm view on Meta::CPAN
my $HDRSIZE = AC::MrGamoo::Protocol->header_size();
my $TIMEOUT = 3;
my $msgid   = $$;
sub new {
    my $class = shift;
    # addr, port, ...
    debug('starting kibitz status client');
    my $me = $class->SUPER::new( @_ );
    return unless $me;
    $me->set_callback('timeout',  \&timeout);
    $me->set_callback('read',     \&read);
    $me->set_callback('shutdown', \&shutdown);
    $me->start();
    # build request
    my $req = AC::MrGamoo::Protocol->encode_request( {
    
  
  
  lib/AC/MrGamoo/Server.pm view on Meta::CPAN
sub new {
    my $class = shift;
    my $fd    = shift;
    my $ip    = shift;
    unless( $AC::MrGamoo::CONF->check_acl( $ip ) ){
        verbose("rejecting connection from $ip");
        return;
    }
    my $me = $class->SUPER::new( info => 'tcp mrgamoo server', from_ip => $ip );
    $me->start($fd);
    $me->timeout_rel($TIMEOUT);
    $me->set_callback('read',    \&read);
    $me->set_callback('timeout', \&timeout);
}
sub timeout {
    my $me = shift;
    
  
  
  lib/AC/MrGamoo/Xfer.pm view on Meta::CPAN
        return $REGISTRY{$req->{copyid}};
    }
    $dstname = conf_value('basedir') . '/' . $dstname;
    my $tmpfile = $dstname . ".$$";
    # mkpath
    my($dir) = $dstname =~ m|^(.+)/[^/]+$|;
    eval{ mkpath($dir, undef, 0755) };
    my $me = $class->SUPER::new( \&_run_child,
                                 [ $srcname, $dstname, $tmpfile, $loc, $req ],
                                 info     => "xfer $loc:$srcname",
                                 request  => $req,
                                 rbufsize => 65536,
                                );
    return unless $me;
    $REGISTRY{$req->{copyid}} = $me;
    debug("xfer requesting $loc:$srcname => $dstname, id $req->{copyid}");
    
  
  
  lib/AC/MrGamoo/Xfer.pm view on Meta::CPAN
sub _start {
    my $me = shift;
    debug("start xfer $me->{request}{copyid}");
    $me->timeout_rel($TIMEOUT);
    $me->set_callback('timeout',  \&timeout);
    $me->set_callback('shutdown', \&shutdown);
    $me->SUPER::start();
}
sub _run_child {
    my $srcname = shift;	# on remote system
    my $dstname = shift;	# on local system
    my $tmpfile = shift;
    my $loc     = shift;
    my $req     = shift;
    
  
  
  
( run in 1.085 second using v1.01-cache-2.11-cpan-a1d94b6210f )