Line data Source code
1 : /*
2 : * Package : mqtt_client
3 : * Author : S. Hamblett <steve.hamblett@linux.com>
4 : * Date : 12/06/2017
5 : * Copyright : S.Hamblett
6 : */
7 :
8 : part of mqtt_client;
9 :
10 : /// Implementation of the variable header for an MQTT Connect message.
11 : class MqttConnectVariableHeader extends MqttVariableHeader {
12 : /// Initializes a new instance of the MqttConnectVariableHeader class.
13 4 : MqttConnectVariableHeader();
14 :
15 : /// Initializes a new instance of the MqttConnectVariableHeader class.
16 : MqttConnectVariableHeader.fromByteBuffer(MqttByteBuffer headerStream)
17 4 : : super.fromByteBuffer(headerStream);
18 :
19 : /// Creates a variable header from the specified header stream.
20 : void readFrom(MqttByteBuffer variableHeaderStream) {
21 4 : readProtocolName(variableHeaderStream);
22 4 : readProtocolVersion(variableHeaderStream);
23 4 : readConnectFlags(variableHeaderStream);
24 4 : readKeepAlive(variableHeaderStream);
25 : }
26 :
27 : /// Writes the variable header to the supplied stream.
28 : void writeTo(MqttByteBuffer variableHeaderStream) {
29 4 : writeProtocolName(variableHeaderStream);
30 4 : writeProtocolVersion(variableHeaderStream);
31 4 : writeConnectFlags(variableHeaderStream);
32 4 : writeKeepAlive(variableHeaderStream);
33 : }
34 :
35 : /// Gets the length of the write data when WriteTo will be called.
36 : int getWriteLength() {
37 : int headerLength = 0;
38 4 : final MqttEncoding enc = new MqttEncoding();
39 12 : headerLength += enc.getByteCount(protocolName);
40 4 : headerLength += 1; // protocolVersion
41 8 : headerLength += MqttConnectFlags.getWriteLength();
42 4 : headerLength += 2; // keepAlive
43 : return headerLength;
44 : }
45 :
46 : /// toString
47 : String toString() {
48 8 : return "Connect Variable Header: ProtocolName=$protocolName, ProtocolVersion=$protocolVersion, "
49 16 : "ConnectFlags=${connectFlags.toString()}, KeepAlive=$keepAlive";
50 : }
51 : }
|