module BufQueue
Constants
- MAP_SIZE
Map size - n
- NUMBER_OF_SUBSCRIBERS
Number of subscribers
- QUEUE_MAX_SIZE
Max queue size - but generates the queue size randomly within this range(0-queue_size)
- RANDOM_INPUT_RANGE
For generating data within range
- VERSION
Public Class Methods
generate_input()
click to toggle source
Generating input randomly
# File lib/buf_queue.rb, line 39 def self.generate_input bq = Bq.new initialize_subscribers(bq, NUMBER_OF_SUBSCRIBERS) i = 0 begin # Iterating over the given map size for enough random input to publish data # And also giving the random queue size within the range of QUEUE_MAX_SIZE for changing B value while i < MAP_SIZE queue_size = rand(1..QUEUE_MAX_SIZE) index = rand(0..MAP_SIZE) bq.initialize_queue index, queue_size bq.add(index, generate_random_type_of_strings(rand(0..RANDOM_INPUT_RANGE))) sleep(2) i += 1 end rescue Exception => e puts "Exception :: #{e}" end end
generate_random_type_of_strings(val)
click to toggle source
This method is just for generating random type of objects like jsons, strings and integer
# File lib/buf_queue.rb, line 26 def self.generate_random_type_of_strings(val) random = rand(0..2) case random when 0 #generates JSON obj {"key" => val.to_s} when 1 #generates string val.to_s else #send integer value val end end
initialize_subscribers(bq, number_of_subscribers)
click to toggle source
Initializing the subscribers with the given size
# File lib/buf_queue.rb, line 16 def self.initialize_subscribers(bq, number_of_subscribers) # Creating subscribers.. subscribers = [] (1..number_of_subscribers).each do |i| subscribers << Subscriber.new(i) end bq.add_subscribers subscribers end