Skip to content

Commit

Permalink
Sending request to poll to allow queue specific options
Browse files Browse the repository at this point in the history
  • Loading branch information
wishdev committed Jul 27, 2009
1 parent 3787864 commit 92c7c5f
Show file tree
Hide file tree
Showing 9 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion default-server/queues/my_test.rb
Expand Up @@ -3,7 +3,7 @@ def put(message)
puts "INCOMMING: #{message.payload}"
end

def poll
def poll(request)
FreeMessageQueue::Message.new "Hello World", "text/plain" do |m|
m.option["Time"] = Time.now
end
Expand Down
4 changes: 2 additions & 2 deletions lib/fmq/queue_manager.rb
Expand Up @@ -102,11 +102,11 @@ def delete_queue(name)
end

# This returns one message from the passed queue
def poll(name)
def poll(name, request)
if queue_exists? name
@log.debug("[QueueManager] Poll from queue '#{name}' with #{queue(name).size} messages")
if queue(name).respond_to? :poll
queue_item = queue(name).poll
queue_item = queue(name).poll(request)
else
raise QueueManagerException.new("[QueueManager] You can't poll from queue '#{name}'", caller)
end
Expand Down
2 changes: 1 addition & 1 deletion lib/fmq/queues/file.rb
Expand Up @@ -32,7 +32,7 @@ module FreeMessageQueue
# *NOTE* the put method is not implemented in this queue. It is a poll only queue.
class FileQueue < BaseQueue
# Return the file and content type
def poll()
def poll(request)
file_content = ""
File.open(@file_path, "rb") do |f|
file_content = f.read
Expand Down
2 changes: 1 addition & 1 deletion lib/fmq/queues/file_persistent.rb
Expand Up @@ -32,7 +32,7 @@ module FreeMessageQueue
# *NOTE* the put method is not implemented in this queue. It is a poll only queue.
class FilePersistentQueue < BaseQueue
# Return the
def poll()
def poll(request)
check_folder_name
messages = all_messages.sort!
return nil if messages.size == 0
Expand Down
2 changes: 1 addition & 1 deletion lib/fmq/queues/linked.rb
Expand Up @@ -52,7 +52,7 @@ def put(message)
end

# Return an message from the queue or nil if the queue is empty
def poll()
def poll(request)
unless empty?
# remove allways the first item
message = @first_message
Expand Down
4 changes: 2 additions & 2 deletions lib/fmq/queues/load_balanced.rb
Expand Up @@ -62,8 +62,8 @@ def bytes
end

# Return one message from one of the queues
def poll
@queues[next_poll_index].poll
def poll(request)
@queues[next_poll_index].poll(request)
end

# Put an item to one of the queues
Expand Down
4 changes: 2 additions & 2 deletions lib/fmq/queues/round_robin.rb
Expand Up @@ -39,9 +39,9 @@ def initialize(manager)
@queue_index = -1 # as starting point will be 0 later by using next_queue
end

def poll
def poll(request)
if allowed? :poll
manager.poll(@redirect_to[next_queue])
manager.poll(@redirect_to[next_queue], request)
else
raise QueueException.new("[RoundRobinQueue] you can't poll from this queue", caller)
end
Expand Down
2 changes: 1 addition & 1 deletion lib/fmq/queues/syncronized.rb
Expand Up @@ -37,7 +37,7 @@ def initialize(manager)
end

# Returns one item from the queue
def poll()
def poll(request)
@semaphore.synchronize {
super
}
Expand Down
2 changes: 1 addition & 1 deletion lib/fmq/server.rb
Expand Up @@ -59,7 +59,7 @@ def call(env)
# Returns an item from queue and sends it to the client.
# If there is no item to fetch send an 204 (NoContent) and same as HEAD
def process_get(request, queue_path)
message = @queue_manager.poll(queue_path)
message = @queue_manager.poll(queue_path, request)

unless message.nil? then
response = Rack::Response.new([], 200)
Expand Down

0 comments on commit 92c7c5f

Please sign in to comment.