class MiniMqtt::PublishPacket
Attributes
dup[RW]
message[RW]
packet_id[RW]
qos[RW]
retain[RW]
topic[RW]
Public Class Methods
new(params = {})
click to toggle source
# File lib/mini_mqtt/publish_packet.rb, line 23 def initialize params = {} @topic = params[:topic] || "" @message = params[:message] || "" @qos = params[:qos] || 0 @dup = params[:dup] || false @retain = params[:retain] || false @packet_id = params[:packet_id] end
Public Instance Methods
build_payload()
click to toggle source
# File lib/mini_mqtt/publish_packet.rb, line 49 def build_payload @message end
build_variable_header()
click to toggle source
# File lib/mini_mqtt/publish_packet.rb, line 40 def build_variable_header header = mqtt_utf8_encode @topic if @qos > 0 @packet_id ||= new_packet_id header << ushort(@packet_id) end header end
flags()
click to toggle source
# File lib/mini_mqtt/publish_packet.rb, line 32 def flags flags = 0 flags |= 0b0001 if @retain flags |= qos << 1 flags |= 0b1000 if @dup flags end
handle_flags(flags)
click to toggle source
# File lib/mini_mqtt/publish_packet.rb, line 6 def handle_flags flags @dup = flags & 0b1000 != 0 @qos = (flags & 0b0110) >> 1 @retain = flags & 0b0001 != 0 end
read_payload()
click to toggle source
# File lib/mini_mqtt/publish_packet.rb, line 19 def read_payload @message = @stream.read end
read_variable_header()
click to toggle source
# File lib/mini_mqtt/publish_packet.rb, line 12 def read_variable_header @topic = read_mqtt_encoded_string @stream if @qos > 0 @packet_id = read_ushort @stream end end