Class: Lumberjack::Beats::AckingProtocolV1

Inherits:
Object
  • Object
show all
Defined in:
lib/lumberjack/beats/server.rb

Overview

class Connection

Instance Method Summary collapse

Constructor Details

#initialize(window_size) ⇒ AckingProtocolV1

Returns a new instance of AckingProtocolV1.



418
419
420
421
# File 'lib/lumberjack/beats/server.rb', line 418

def initialize(window_size)
  @next_ack = nil
  @window_size = window_size
end

Instance Method Details

#ack?(sequence) ⇒ Boolean

Returns:

  • (Boolean)


423
424
425
426
427
428
# File 'lib/lumberjack/beats/server.rb', line 423

def ack?(sequence)
  # The first encoded event will contain the sequence number
  # this is needed to know when we should ack.
  @next_ack = compute_next_ack(sequence) if @next_ack.nil?
  sequence == @next_ack
end

#ack_frame(sequence) ⇒ Object



430
431
432
# File 'lib/lumberjack/beats/server.rb', line 430

def ack_frame(sequence)
  ["1A", sequence].pack("A*N")
end