Class: FQuery::OutstandingHandlers

Inherits:
Object
  • Object
show all
Defined in:
lib/motion/FQuery+RMXFirebase.rb

Instance Method Summary collapse

Constructor Details

#initialize(_scope) ⇒ OutstandingHandlers

Returns a new instance of OutstandingHandlers.



120
121
122
123
# File 'lib/motion/FQuery+RMXFirebase.rb', line 120

def initialize(_scope)
  self.scope = _scope
  @handlers = []
end

Instance Method Details

#<<(handler) ⇒ Object



125
126
127
# File 'lib/motion/FQuery+RMXFirebase.rb', line 125

def <<(handler)
  @handlers << handler
end

#deallocObject



150
151
152
153
# File 'lib/motion/FQuery+RMXFirebase.rb', line 150

def dealloc
  off
  super
end

#handlersObject



129
130
131
# File 'lib/motion/FQuery+RMXFirebase.rb', line 129

def handlers
  @handlers
end

#off(handle = nil) ⇒ Object



133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/motion/FQuery+RMXFirebase.rb', line 133

def off(handle=nil)
  if s = scope
    if _handle = @handlers.delete(handle)
      # p s.rmx_object_desc, "remove handle", _handle
      RMXFirebase::INTERNAL_QUEUE.sync do
        s.removeObserverWithHandle(_handle)
      end
    else
      _handlers = @handlers.dup
      while _handlers.size > 0
        _handle = _handlers.shift
        off(_handle)
      end
    end
  end
end