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.



542
543
544
545
# File 'lib/lumberjack/beats/server.rb', line 542

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

Instance Method Details

#ack?(sequence) ⇒ Boolean

Returns:

  • (Boolean)


547
548
549
550
551
552
# File 'lib/lumberjack/beats/server.rb', line 547

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



554
555
556
# File 'lib/lumberjack/beats/server.rb', line 554

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