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.



397
398
399
400
401
402
403
404
# File 'lib/ldclient-rb/events.rb', line 397

def initialize(capacity, logger)
  @capacity = capacity
  @logger = logger
  @capacity_exceeded = false
  @dropped_events = 0
  @events = []
  @summarizer = LaunchDarkly::Impl::EventSummarizer.new
end

Instance Method Details

#add_event(event) ⇒ Object



406
407
408
409
410
411
412
413
414
415
416
417
# File 'lib/ldclient-rb/events.rb', line 406

def add_event(event)
  if @events.length < @capacity
    @events.push(event)
    @capacity_exceeded = false
  else
    @dropped_events += 1
    unless @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



419
420
421
# File 'lib/ldclient-rb/events.rb', line 419

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

#clearObject



433
434
435
436
# File 'lib/ldclient-rb/events.rb', line 433

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

#get_and_clear_dropped_countObject



427
428
429
430
431
# File 'lib/ldclient-rb/events.rb', line 427

def get_and_clear_dropped_count
  ret = @dropped_events
  @dropped_events = 0
  ret
end

#get_payloadObject



423
424
425
# File 'lib/ldclient-rb/events.rb', line 423

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