class HTTPX::Resolver::Cache::Memory

  1. lib/httpx/resolver/cache/memory.rb
Superclass: Base

Implementation of a thread-safe in-memory LRU resolver cache.

Methods

Public Class

  1. new

Public Instance

  1. evict
  2. get
  3. set

Public Class methods

new()
[show source]
   # File lib/httpx/resolver/cache/memory.rb
 7 def initialize
 8   super
 9   @hostnames = []
10   @lookups = Hash.new { |h, k| h[k] = [] }
11   @lookup_mutex = Thread::Mutex.new
12 end

Public Instance methods

evict(hostname, ip)
[show source]
   # File lib/httpx/resolver/cache/memory.rb
27 def evict(hostname, ip)
28   ip = ip.to_s
29 
30   synchronize do |lookups, hostnames|
31     _evict(hostname, ip, lookups, hostnames)
32   end
33 end
get(hostname)
[show source]
   # File lib/httpx/resolver/cache/memory.rb
14 def get(hostname)
15   now = Utils.now
16   synchronize do |lookups, hostnames|
17     _get(hostname, lookups, hostnames, now)
18   end
19 end
set(hostname, family, entries)
[show source]
   # File lib/httpx/resolver/cache/memory.rb
21 def set(hostname, family, entries)
22   synchronize do |lookups, hostnames|
23     _set(hostname, family, entries, lookups, hostnames)
24   end
25 end