Class: ICMP4EM::Request
- Inherits:
-
Object
- Object
- ICMP4EM::Request
- Includes:
- EM::Deferrable
- Defined in:
- lib/icmp4em/request.rb
Instance Attribute Summary collapse
-
#id ⇒ Object
readonly
Returns the value of attribute id.
Instance Method Summary collapse
-
#initialize(args = {}) ⇒ Request
constructor
A new instance of Request.
- #send ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ Request
Returns a new instance of Request.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/icmp4em/request.rb', line 7 def initialize args = {} @host = args[:host] @manager = args[:manager] @id = args[:id] @max_retries = args[:retries] || @manager.retries @timeout = args[:timeout] || @manager.timeout @retry_id = 0 @timeout_timer = nil callback do @timeout_timer.cancel end errback do @timeout_timer.cancel end end |
Instance Attribute Details
#id ⇒ Object (readonly)
Returns the value of attribute id.
5 6 7 |
# File 'lib/icmp4em/request.rb', line 5 def id @id end |
Instance Method Details
#send ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/icmp4em/request.rb', line 26 def send @timeout_timer.cancel if @timeout_timer.is_a?(EventMachine::Timer) @timeout_timer = EventMachine::Timer.new(@timeout) do if @max_retries > @retry_id send @retry_id += 1 else fail Timeout.new end end packet = Packet.new(:type => Packet::ICMP_ECHO_REQUEST, :manager_id => @manager.id, :request_id => @id, :retry_id => @retry_id) @manager.send_packet :packet => packet, :to => @host end |