class
MQTT::V5::Ack
- MQTT::V5::Ack
- MQTT::Header
- BinData
- Reference
- Object
Overview
PUBACK, PUBREC, PUBREL and PUBCOMP.
NOTE : MQTT-3.4.2.1, the reason code and the property section are both
omitted when the reason is success and there are no properties. Nothing in
the packet says so — the remaining length is what tells you, which is
exactly what onlyif needs
Included Modules
Defined in:
mqtt/v5/ack.crConstant Summary
-
AFTER_DESERIALIZE =
[] of Nil -
PUBACK, PUBREC, PUBREL and PUBCOMP.
NOTE : MQTT-3.4.2.1, the reason code and the property section are both omitted when the reason is success and there are no properties. Nothing in the packet says so — the remaining length is what tells you, which is exactly what
onlyifneeds -
ALLOWED_PROPERTIES =
[PropertyId::ReasonString, PropertyId::UserProperty] -
BEFORE_SERIALIZE =
[] of Nil -
PUBACK, PUBREC, PUBREL and PUBCOMP.
NOTE : MQTT-3.4.2.1, the reason code and the property section are both omitted when the reason is success and there are no properties. Nothing in the packet says so — the remaining length is what tells you, which is exactly what
onlyifneeds -
ENDIAN =
["big"] -
PUBACK, PUBREC, PUBREL and PUBCOMP.
NOTE : MQTT-3.4.2.1, the reason code and the property section are both omitted when the reason is success and there are no properties. Nothing in the packet says so — the remaining length is what tells you, which is exactly what
onlyifneeds -
KLASS_NAME =
[MQTT::V5::Ack] -
PUBACK, PUBREC, PUBREL and PUBCOMP.
NOTE : MQTT-3.4.2.1, the reason code and the property section are both omitted when the reason is success and there are no properties. Nothing in the packet says so — the remaining length is what tells you, which is exactly what
onlyifneeds -
PARTS =
[{type: "basic", name: message_id, cls: UInt16, onlyif: nil, verify: nil, value: nil, endian: nil}, {type: "basic", name: raw_reason_code, cls: UInt8, onlyif: -> do packet_length > 2 end, verify: nil, value: nil, endian: nil}, {type: "basic", name: properties, cls: MQTT::V5::Properties, onlyif: -> do packet_length > 3 end, verify: nil, value: nil}] of Nil -
PUBACK, PUBREC, PUBREL and PUBCOMP.
NOTE : MQTT-3.4.2.1, the reason code and the property section are both omitted when the reason is success and there are no properties. Nothing in the packet says so — the remaining length is what tells you, which is exactly what
onlyifneeds -
REMAINING =
[] of Nil -
PUBACK, PUBREC, PUBREL and PUBCOMP.
NOTE : MQTT-3.4.2.1, the reason code and the property section are both omitted when the reason is success and there are no properties. Nothing in the packet says so — the remaining length is what tells you, which is exactly what
onlyifneeds
Class Method Summary
-
.bit_fields
PUBACK, PUBREC, PUBREL and PUBCOMP.
Instance Method Summary
-
#__format__ : IO::ByteFormat
A
grouporbit_fieldcaptures the endianness at its declaration point, so declaringendianafter one would silently leave it system-endian. - #add_user_property(key : String, value : String) : Nil
- #calculate_length : UInt32
- #message_id : UInt16
- #message_id=(message_id : UInt16)
- #properties : Properties
- #properties=(properties : Properties)
- #raw_reason_code : UInt8
- #raw_reason_code=(raw_reason_code : UInt8)
- #reason_string : String | Nil
- #reason_string=(value : String | Nil)
- #user_properties : Array(Tuple(String, String))
- #validate! : self
Instance methods inherited from module MQTT::V5::ReasonCoded
error? : Bool
error?,
reason_code : ReasonCode | Nil
reason_code,
reason_code=(code : ReasonCode) : ReasonCode
reason_code=,
reason_description : String
reason_description,
success? : Bool
success?
Instance methods inherited from class MQTT::Header
__format__ : IO::ByteFormat
__format__,
duplicate : Bool
duplicate,
duplicate=(duplicate : UInt8)duplicate=(value : Bool) duplicate=, fixed_header_size : Int32 fixed_header_size, id : MQTT::RequestType id, id=(id : UInt8)
id=(value : MQTT::RequestType) id=, packet_length : UInt32 packet_length, packet_length=(size : UInt32) : UInt32 packet_length=, qos : MQTT::QoS qos, qos=(qos : UInt8)
qos=(value : MQTT::QoS) qos=, qos? qos?, retain : Bool retain, retain=(retain : UInt8)
retain=(value : Bool) retain=, variable_length1 : UInt8 variable_length1, variable_length1=(value : UInt8) : UInt8 variable_length1=, variable_length2 : UInt8 variable_length2, variable_length2=(value : UInt8) : UInt8 variable_length2=, variable_length3 : UInt8 variable_length3, variable_length3=(value : UInt8) : UInt8 variable_length3=, variable_length4 : UInt8 variable_length4, variable_length4=(value : UInt8) : UInt8 variable_length4=
Class methods inherited from class MQTT::Header
bit_fields
bit_fields
Class Method Detail
PUBACK, PUBREC, PUBREL and PUBCOMP.
NOTE : MQTT-3.4.2.1, the reason code and the property section are both
omitted when the reason is success and there are no properties. Nothing in
the packet says so — the remaining length is what tells you, which is
exactly what onlyif needs
Instance Method Detail
A group or bit_field captures the endianness at its declaration point, so
declaring endian after one would silently leave it system-endian. Fail loudly.