class SNMP4EM::SnmpGetRequest

The result of calling {SNMPCommonRequests#get}.

Attributes

snmp_id[RW]

Public Instance Methods

callback(&block) click to toggle source

Used to register a callback that is triggered when the query result is ready. The resulting object is passed as a parameter to the block.

Calls superclass method
   # File lib/snmp4em/requests/snmp_get_request.rb
 9 def callback &block
10   super
11 end
errback(&block) click to toggle source

Used to register a callback that is triggered when query fails to complete successfully.

Calls superclass method
   # File lib/snmp4em/requests/snmp_get_request.rb
14 def errback &block
15   super
16 end
handle_response(response) click to toggle source
Calls superclass method
   # File lib/snmp4em/requests/snmp_get_request.rb
18 def handle_response(response)  # @private
19   super
20   
21   if response.error_status == :noError
22     pending_oids.zip(response.varbind_list).each do |oid, response_vb|
23       oid[:response] = format_value(response_vb)
24       oid[:state] = :complete
25     end
26   
27   else
28     error_oid = pending_oids[response.error_index - 1]
29     error_oid[:state] = :error
30     error_oid[:error] = SNMP::ResponseError.new(response.error_status)
31   end
32 
33   if pending_oids.empty?
34     result = {}
35 
36     @oids.each do |oid|
37       requested_oid = oid[:requested_string]
38       result[requested_oid] = oid[:error] || oid[:response]
39     end
40 
41     succeed result
42     return
43   end
44 
45   send_msg
46 end

Private Instance Methods

send_msg() click to toggle source
Calls superclass method
   # File lib/snmp4em/requests/snmp_get_request.rb
50 def send_msg
51   Manager.track_request(self)
52 
53   query_oids = @oids.select{|oid| oid[:state] == :pending}.collect{|oid| oid[:requested_oid]}
54 
55   vb_list = SNMP::VarBindList.new(query_oids)
56   request = SNMP::GetRequest.new(@snmp_id, vb_list)
57   message = SNMP::Message.new(@sender.version, @sender.community_ro, request)
58 
59   super(message)
60 end