Class: Kafka::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/kafka/message.rb

Overview

A message. The format of an N byte message is the following: 1 byte “magic” identifier to allow format changes 4 byte CRC32 of the payload N - 5 byte payload

Constant Summary collapse

MAGIC_IDENTIFIER_DEFAULT =
0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(payload = nil, magic = MAGIC_IDENTIFIER_DEFAULT) ⇒ Message

Returns a new instance of Message.



11
12
13
14
15
# File 'lib/kafka/message.rb', line 11

def initialize(payload = nil, magic = MAGIC_IDENTIFIER_DEFAULT)
  self.magic = magic
  self.payload = payload
  self.checksum = self.calculate_checksum
end

Instance Attribute Details

#checksumObject

Returns the value of attribute checksum.



9
10
11
# File 'lib/kafka/message.rb', line 9

def checksum
  @checksum
end

#magicObject

Returns the value of attribute magic.



9
10
11
# File 'lib/kafka/message.rb', line 9

def magic
  @magic
end

#payloadObject

Returns the value of attribute payload.



9
10
11
# File 'lib/kafka/message.rb', line 9

def payload
  @payload
end

Instance Method Details

#calculate_checksumObject



17
18
19
# File 'lib/kafka/message.rb', line 17

def calculate_checksum
  Zlib.crc32(self.payload)
end

#valid?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/kafka/message.rb', line 21

def valid?
  self.checksum == Zlib.crc32(self.payload)
end