Class: ActiveEvent::EventSourceServer::Status

Inherits:
Object
  • Object
show all
Defined in:
lib/active_event/event_source_server.rb

Defined Under Namespace

Modules: UnconditionalVariable

Instance Method Summary collapse

Constructor Details

#initializeStatus

Returns a new instance of Status.



54
55
56
# File 'lib/active_event/event_source_server.rb', line 54

def initialize
  @waiters = {}
end

Instance Method Details

#event=(event) ⇒ Object



70
71
72
73
74
75
# File 'lib/active_event/event_source_server.rb', line 70

def event=(event)
  @event_id = event
  cvs = []
  @waiters.delete_if { |event_id, cv| (event_id <= event) && (cvs << cv) }
  cvs.map &:broadcast
end

#fail_on_errorObject



77
78
79
# File 'lib/active_event/event_source_server.rb', line 77

def fail_on_error
  fail ProjectionException, @error, @backtrace if @error
end

#set_error(error, backtrace) ⇒ Object



66
67
68
# File 'lib/active_event/event_source_server.rb', line 66

def set_error(error, backtrace)
  @error, @backtrace = error, backtrace if error || backtrace
end

#waiter(event) ⇒ Object



58
59
60
61
62
63
64
# File 'lib/active_event/event_source_server.rb', line 58

def waiter(event)
  if event > @event_id
    @waiters[event] ||= ConditionVariable.new
  else
    UnconditionalVariable
  end
end