Class: MiniMqtt::SubscribePacket

Inherits:
Packet
  • Object
show all
Defined in:
lib/mini_mqtt/subscribe_packet.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Packet

#decode, #encode, get_packet_class, packet_type_id

Methods included from BinHelper

#flag_byte, #mqtt_utf8_encode, #read_mqtt_encoded_string, #read_ushort, #uchar, #ushort

Constructor Details

#initialize(params = {}) ⇒ SubscribePacket

Returns a new instance of SubscribePacket.



6
7
8
# File 'lib/mini_mqtt/subscribe_packet.rb', line 6

def initialize params = {}
  @topics = params[:topics]
end

Instance Attribute Details

#packet_idObject

Returns the value of attribute packet_id.



3
4
5
# File 'lib/mini_mqtt/subscribe_packet.rb', line 3

def packet_id
  @packet_id
end

#topicsObject

Returns the value of attribute topics.



3
4
5
# File 'lib/mini_mqtt/subscribe_packet.rb', line 3

def topics
  @topics
end

Instance Method Details

#build_payloadObject



19
20
21
22
23
# File 'lib/mini_mqtt/subscribe_packet.rb', line 19

def build_payload
  @topics.map do |topic, qos|
    mqtt_utf8_encode(topic) + uchar(qos)
  end.join
end

#build_variable_headerObject



14
15
16
17
# File 'lib/mini_mqtt/subscribe_packet.rb', line 14

def build_variable_header
  @packet_id ||= new_packet_id
  ushort @packet_id
end

#flagsObject



10
11
12
# File 'lib/mini_mqtt/subscribe_packet.rb', line 10

def flags
  0b0010
end