Class: StompServer::MemoryQueue
- Inherits:
-
Object
- Object
- StompServer::MemoryQueue
- Defined in:
- lib/stomp_server/queue/memory_queue.rb
Instance Attribute Summary collapse
-
#checkpoint_interval ⇒ Object
Returns the value of attribute checkpoint_interval.
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.
6 7 8 9 10 11 12 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 6 def initialize @frame_index =0 @stompid = StompServer::StompId.new @stats = Hash.new @messages = Hash.new { Array.new } puts "MemoryQueue initialized" end |
Instance Attribute Details
#checkpoint_interval ⇒ Object
Returns the value of attribute checkpoint_interval.
4 5 6 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 4 def checkpoint_interval @checkpoint_interval end |
Instance Method Details
#assign_id(frame, dest) ⇒ Object
55 56 57 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 55 def assign_id(frame, dest) frame.headers['message-id'] = @stompid[@frame_index] end |
#dequeue(dest) ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 25 def dequeue(dest) if frame = @messages[dest].shift @stats[dest][:dequeued] += 1 return frame else return false end end |
#enqueue(dest, frame) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 34 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
51 52 53 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 51 def (dest) !@messages[dest].empty? end |
#monitor ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 17 def monitor stats = Hash.new @messages.keys.each do |dest| stats[dest] = {'size' => @messages[dest].size, 'enqueued' => @stats[dest][:enqueued], 'dequeued' => @stats[dest][:dequeued]} end stats end |
#requeue(dest, frame) ⇒ Object
47 48 49 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 47 def requeue(dest,frame) @messages[dest] += [frame] end |
#stop ⇒ Object
14 15 |
# File 'lib/stomp_server/queue/memory_queue.rb', line 14 def stop end |