Class: EventMachine::DnsCache::Request

Inherits:
Object
  • Object
show all
Includes:
EM::Deferrable
Defined in:
lib/em/dns_cache.rb

Constant Summary collapse

@@outstanding =
{}

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rslt, m_id) ⇒ Request

Returns a new instance of Request.



316
317
318
319
320
321
322
323
324
325
# File 'lib/em/dns_cache.rb', line 316

def initialize rslt, m_id
  @result = rslt
  @msgid = m_id
  raise "request-queue overflow" if @@outstanding.has_key?(@msgid)
  @@outstanding[@msgid] = self

  self.timeout(10)
  self.errback { self.cancel_timeout; @@outstanding.delete(@msgid); @result.fail }
  self.callback {|resp| self.cancel_timeout; @result.succeed resp }
end

Class Method Details

.post(response) ⇒ Object



310
311
312
313
314
# File 'lib/em/dns_cache.rb', line 310

def self.post response
  if r = @@outstanding.delete(response.id)
    r.succeed response
  end
end