Class: LaunchDarkly::EventBuffer

Inherits:
Object
  • Object
show all
Defined in:
lib/ldclient-rb/events.rb

Instance Method Summary collapse

Constructor Details

#initialize(capacity, logger) ⇒ EventBuffer

Returns a new instance of EventBuffer.



251
252
253
254
255
256
257
# File 'lib/ldclient-rb/events.rb', line 251

def initialize(capacity, logger)
  @capacity = capacity
  @logger = logger
  @capacity_exceeded = false
  @events = []
  @summarizer = EventSummarizer.new
end

Instance Method Details

#add_event(event) ⇒ Object



259
260
261
262
263
264
265
266
267
268
269
270
# File 'lib/ldclient-rb/events.rb', line 259

def add_event(event)
  if @events.length < @capacity
    @logger.debug { "[LDClient] Enqueueing event: #{event.to_json}" }
    @events.push(event)
    @capacity_exceeded = false
  else
    if !@capacity_exceeded
      @capacity_exceeded = true
      @logger.warn { "[LDClient] Exceeded event queue capacity. Increase capacity to avoid dropping events." }
    end
  end
end

#add_to_summary(event) ⇒ Object



272
273
274
# File 'lib/ldclient-rb/events.rb', line 272

def add_to_summary(event)
  @summarizer.summarize_event(event)
end

#clearObject



280
281
282
283
# File 'lib/ldclient-rb/events.rb', line 280

def clear
  @events = []
  @summarizer.clear
end

#get_payloadObject



276
277
278
# File 'lib/ldclient-rb/events.rb', line 276

def get_payload
  return FlushPayload.new(@events, @summarizer.snapshot)
end