class RubyRabbitmqJanus::Rabbit::BaseEvent

# Parent class for all publisher This element send and read a message in rabbitmq Queue

@!attribute [r] responses

@return [RubyRabbitmqJanus::Janus::Responses::Response]
  Given an array of Janus response

@abstract Publish message in RabbitMQ

Attributes

lock[RW]
responses[R]
semaphore[RW]

Public Class Methods

new() click to toggle source

Define a base publisher

# File lib/rrj/rabbit/base_event.rb, line 22
def initialize
  @responses = []
  @semaphore = Semaphore.new
  @lock = Mutex.new
end

Private Instance Methods

return_response() click to toggle source
# File lib/rrj/rabbit/base_event.rb, line 32
def return_response
  @semaphore.wait
  response = nil
  @lock.synchronize do
    response = @responses.shift
  end
  response
end