LCOV - code coverage report
Current view: top level - src/messages/connect - mqtt_client_mqtt_connect_payload.dart (source / functions) Hit Total Coverage
Test: coverage.lcov Lines: 32 40 80.0 %
Date: 2017-10-09 Functions: 0 0 -

          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             : /// Class that contains details related to an MQTT Connect messages payload.
      11             : class MqttConnectPayload extends MqttPayload {
      12             :   /// Initializes a new instance of the MqttConnectPayload class.
      13           4 :   MqttConnectPayload(MqttConnectVariableHeader variableHeader) {
      14           4 :     this.variableHeader = variableHeader;
      15             :   }
      16             : 
      17             :   /// Initializes a new instance of the MqttConnectPayload class.
      18             :   MqttConnectPayload.fromByteBuffer(MqttConnectVariableHeader variableHeader,
      19           4 :       MqttByteBuffer payloadStream) {
      20           4 :     this.variableHeader = variableHeader;
      21           4 :     readFrom(payloadStream);
      22             :   }
      23             : 
      24             :   String _clientIdentifier = "";
      25             : 
      26           4 :   String get clientIdentifier => _clientIdentifier;
      27             : 
      28             :   set clientIdentifier(String id) {
      29           8 :     if (id.length > Constants.maxClientIdentifierLength) {
      30           0 :       throw new ClientIdentifierException(id);
      31             :     }
      32           8 :     if (id.length > Constants.maxClientIdentifierLengthSpec) {
      33           0 :       MqttLogger.log(
      34             :           "MqttConnectPayload::Client id exceeds spec value of ${Constants
      35             :               .maxClientIdentifierLengthSpec}");
      36             :     }
      37           4 :     _clientIdentifier = id;
      38             :   }
      39             : 
      40             :   MqttConnectVariableHeader variableHeader = new MqttConnectVariableHeader();
      41             :   String _username;
      42             : 
      43           1 :   String get username => _username;
      44             : 
      45           2 :   set username(String name) => _username = name != null ? name.trim() : name;
      46             :   String _password;
      47             : 
      48           1 :   String get password => _password;
      49             : 
      50           2 :   set password(String pwd) => _password = pwd != null ? pwd.trim() : pwd;
      51             :   String willTopic;
      52             :   String willMessage;
      53             : 
      54             :   /// Creates a payload from the specified header stream.
      55             :   void readFrom(MqttByteBuffer payloadStream) {
      56           8 :     clientIdentifier = payloadStream.readMqttStringM();
      57          12 :     if (this.variableHeader.connectFlags.willFlag) {
      58           2 :       willTopic = payloadStream.readMqttStringM();
      59           2 :       willMessage = payloadStream.readMqttStringM();
      60             :     }
      61          12 :     if (variableHeader.connectFlags.usernameFlag) {
      62           0 :       username = payloadStream.readMqttStringM();
      63             :     }
      64          12 :     if (variableHeader.connectFlags.passwordFlag) {
      65           0 :       password = payloadStream.readMqttStringM();
      66             :     }
      67             :   }
      68             : 
      69             :   /// Writes the connect message payload to the supplied stream.
      70             :   void writeTo(MqttByteBuffer payloadStream) {
      71           8 :     payloadStream.writeMqttStringM(clientIdentifier);
      72          12 :     if (variableHeader.connectFlags.willFlag) {
      73           2 :       payloadStream.writeMqttStringM(willTopic);
      74           2 :       payloadStream.writeMqttStringM(willMessage);
      75             :     }
      76          12 :     if (variableHeader.connectFlags.usernameFlag) {
      77           0 :       payloadStream.writeMqttStringM(username);
      78             :     }
      79          12 :     if (variableHeader.connectFlags.passwordFlag) {
      80           0 :       payloadStream.writeMqttStringM(password);
      81             :     }
      82             :   }
      83             : 
      84             :   int getWriteLength() {
      85             :     int length = 0;
      86           4 :     final MqttEncoding enc = new MqttEncoding();
      87          12 :     length += enc.getByteCount(clientIdentifier);
      88          12 :     if (this.variableHeader.connectFlags.willFlag) {
      89           3 :       length += enc.getByteCount(willTopic);
      90           3 :       length += enc.getByteCount(willMessage);
      91             :     }
      92          12 :     if (variableHeader.connectFlags.usernameFlag) {
      93           0 :       length += enc.getByteCount(username);
      94             :     }
      95          12 :     if (variableHeader.connectFlags.passwordFlag) {
      96           0 :       length += enc.getByteCount(password);
      97             :     }
      98             :     return length;
      99             :   }
     100             : }

Generated by: LCOV version 1.10