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.



362
363
364
365
366
367
368
369
# File 'lib/ldclient-rb/events.rb', line 362

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

Instance Method Details

#add_event(event) ⇒ Object



371
372
373
374
375
376
377
378
379
380
381
382
383
# File 'lib/ldclient-rb/events.rb', line 371

def add_event(event)
  if @events.length < @capacity
    @logger.debug { "[LDClient] Enqueueing event: #{event.to_json}" }
    @events.push(event)
    @capacity_exceeded = false
  else
    @dropped_events += 1
    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



385
386
387
# File 'lib/ldclient-rb/events.rb', line 385

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

#clearObject



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

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

#get_and_clear_dropped_countObject



393
394
395
396
397
# File 'lib/ldclient-rb/events.rb', line 393

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

#get_payloadObject



389
390
391
# File 'lib/ldclient-rb/events.rb', line 389

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