class Aws::EventEmitter
Attributes
encoder[RW]
signal_queue[RW]
stream[RW]
validate_event[RW]
Public Class Methods
new()
click to toggle source
# File lib/aws-sdk-core/event_emitter.rb, line 6 def initialize @listeners = {} @validate_event = true @signal_queue = Queue.new end
Public Instance Methods
emit(type, params)
click to toggle source
# File lib/aws-sdk-core/event_emitter.rb, line 31 def emit(type, params) unless @stream raise Aws::Errors::SignalEventError.new( "Singaling events before making async request"\ " is not allowed." ) end if @validate_event && type != :end_stream Aws::ParamValidator.validate!( @encoder.rules.shape.member(type), params) end @stream.data( @encoder.encode(type, params), end_stream: type == :end_stream ) end
on(type, callback)
click to toggle source
# File lib/aws-sdk-core/event_emitter.rb, line 20 def on(type, callback) (@listeners[type] ||= []) << callback end
signal(type, event)
click to toggle source
# File lib/aws-sdk-core/event_emitter.rb, line 24 def signal(type, event) return unless @listeners[type] @listeners[type].each do |listener| listener.call(event) if event.event_type == type end end