AnyEvent-SNMP

 view release on metacpan or  search on metacpan

SNMP.pm  view on Meta::CPAN

      my $pdu = shift @QUEUE
         or last;

      ++$BUSY;
      _send_pdu $pdu, $pdu->retries;
   }

   $DONE and $DONE->() unless $BUSY;
}

sub send_pdu($$$) {
   my (undef, $pdu, $delay) = @_;

   # $delay is not very sensibly implemented by AnyEvent::SNMP,
   # but apparently it is not a very sensible feature.
   if ($delay > 0) {
      ++$BUSY;
      my $delay_w; $delay_w = AE::timer $delay, 0, sub {
         undef $delay_w;
         push @QUEUE, $pdu;
         --$BUSY;

SNMP.pm  view on Meta::CPAN

      };
      return 1;
   }

   push @QUEUE, $pdu;
   kick_job;

   1
}

sub loop($) {
   while ($BUSY) {
      $DONE = AE::cv;
      $DONE->recv;
      undef $DONE;
   }
}

*activate = \&loop; # 5.x compatibility?
*listen   = \&loop; # 5.x compatibility?

sub one_event($) {
   # should not ever be used
   AnyEvent->one_event; #d# todo
}

sub set_max_outstanding($) {
   $MAX_OUTSTANDING = $_[0];
   kick_job;
}

# not provided yet:
# schedule            # apparently only used by Net::SNMP::Dispatcher itself
# register            # apparently only used by Net::SNMP::Dispatcher itself
# deregister          # apparently only used by Net::SNMP::Dispatcher itself
# cancel              # apparently only used by Net::SNMP::Dispatcher itself
# return_response_pdu # apparently not used at all?



( run in 0.756 second using v1.01-cache-2.11-cpan-65fba6d93b7 )