Class: Quicsilver::Server::RequestRegistry
- Inherits:
-
Object
- Object
- Quicsilver::Server::RequestRegistry
- Defined in:
- lib/quicsilver/server/request_registry.rb
Instance Method Summary collapse
- #active_count ⇒ Object
- #active_requests ⇒ Object
- #complete(stream_id) ⇒ Object
- #empty? ⇒ Boolean
- #include?(stream_id) ⇒ Boolean
-
#initialize ⇒ RequestRegistry
constructor
A new instance of RequestRegistry.
- #requests_older_than(seconds) ⇒ Object
- #track(stream_id, connection_handle, path:, method:, started_at: Time.now) ⇒ Object
Constructor Details
#initialize ⇒ RequestRegistry
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_count ⇒ Object
26 27 28 |
# File 'lib/quicsilver/server/request_registry.rb', line 26 def active_count @mutex.synchronize { @requests.size } end |
#active_requests ⇒ Object
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
41 42 43 |
# File 'lib/quicsilver/server/request_registry.rb', line 41 def empty? @mutex.synchronize { @requests.empty? } end |
#include?(stream_id) ⇒ 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 |