Class: StompServer::MemoryQueue
- Inherits:
-
Object
- Object
- StompServer::MemoryQueue
- Defined in:
- lib/stomp_server/queue/memory_queue.rb
Instance Method Summary collapse
- #assign_id(frame, dest) ⇒ Object
- #dequeue(dest) ⇒ Object
- #enqueue(dest, frame) ⇒ Object
-
#initialize ⇒ MemoryQueue
constructor
A new instance of MemoryQueue.
- #message_for?(dest) ⇒ Boolean
- #monitor ⇒ Object
- #requeue(dest, frame) ⇒ Object
- #stop ⇒ Object
Constructor Details
#initialize ⇒ MemoryQueue
Returns a new instance of MemoryQueue.
5 6 7 8 9 10 11 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 5 def initialize @frame_index =0 @stompid = StompServer::StompId.new @stats = Hash.new = Hash.new { Array.new } puts "MemoryQueue initialized" end |
Instance Method Details
#assign_id(frame, dest) ⇒ Object
54 55 56 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 54 def assign_id(frame, dest) frame.headers['message-id'] = @stompid[@frame_index] end |
#dequeue(dest) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 24 def dequeue(dest) if frame = [dest].shift @stats[dest][:dequeued] += 1 return frame else return false end end |
#enqueue(dest, frame) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 33 def enqueue(dest,frame) @frame_index += 1 if @stats[dest] @stats[dest][:enqueued] += 1 else @stats[dest] = Hash.new @stats[dest][:enqueued] = 1 @stats[dest][:dequeued] = 0 end assign_id(frame, dest) requeue(dest, frame) end |
#message_for?(dest) ⇒ Boolean
50 51 52 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 50 def (dest) ![dest].empty? end |
#monitor ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 16 def monitor stats = Hash.new .keys.each do |dest| stats[dest] = {'size' => [dest].size, 'enqueued' => @stats[dest][:enqueued], 'dequeued' => @stats[dest][:dequeued]} end stats end |
#requeue(dest, frame) ⇒ Object
46 47 48 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 46 def requeue(dest,frame) [dest] += [frame] end |
#stop ⇒ Object
13 14 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 13 def stop end |