Class: Quicsilver::Server::RequestRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/quicsilver/server/request_registry.rb

Instance Method Summary collapse

Constructor Details

#initializeRequestRegistry

Returns a new instance of RequestRegistry.



6
7
8
9
# File 'lib/quicsilver/server/request_registry.rb', line 6

def initialize
  @requests = {}
  @mutex = Mutex.new
end

Instance Method Details

#active_countObject



26
27
28
# File 'lib/quicsilver/server/request_registry.rb', line 26

def active_count
  @mutex.synchronize { @requests.size }
end

#active_requestsObject



30
31
32
# File 'lib/quicsilver/server/request_registry.rb', line 30

def active_requests
  @mutex.synchronize { @requests.dup }
end

#complete(stream_id) ⇒ Object



22
23
24
# File 'lib/quicsilver/server/request_registry.rb', line 22

def complete(stream_id)
  @mutex.synchronize { @requests.delete(stream_id) }
end

#empty?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/quicsilver/server/request_registry.rb', line 41

def empty?
  @mutex.synchronize { @requests.empty? }
end

#include?(stream_id) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/quicsilver/server/request_registry.rb', line 45

def include?(stream_id)
  @mutex.synchronize { @requests.key?(stream_id) }
end

#requests_older_than(seconds) ⇒ Object



34
35
36
37
38
39
# File 'lib/quicsilver/server/request_registry.rb', line 34

def requests_older_than(seconds)
  cutoff = Time.now - seconds
  @mutex.synchronize do
    @requests.select { |_, r| r[:started_at] < cutoff }
  end
end

#track(stream_id, connection_handle, path:, method:, started_at: Time.now) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/quicsilver/server/request_registry.rb', line 11

def track(stream_id, connection_handle, path:, method:, started_at: Time.now)
  @mutex.synchronize do
    @requests[stream_id] = {
      connection_handle: connection_handle,
      path: path,
      method: method,
      started_at: started_at
    }
  end
end