LCOV - code coverage report
Current view: top level - src/messages - mqtt_client_mqtt_message.dart (source / functions) Hit Total Coverage
Test: coverage.lcov Lines: 11 12 91.7 %
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   : 31/05/2017
       5             :  * Copyright :  S.Hamblett
       6             :  */
       7             : 
       8             : part of mqtt_client;
       9             : 
      10             : /// Represents an MQTT message that contains a fixed header, variable header and message body.
      11             : /// Messages roughly look as follows.
      12             : /// ----------------------------
      13             : /// | Header, 2-5 Bytes Length |
      14             : /// ----------------------------
      15             : /// | Variable Header(VH)      |
      16             : /// | n Bytes Length           |
      17             : /// ----------------------------
      18             : /// | Message Payload          |
      19             : /// | 256MB minus VH Size      |
      20             : /// ----------------------------
      21             : 
      22             : class MqttMessage {
      23             :   /// The header of the MQTT Message. Contains metadata about the message
      24             :   MqttHeader header;
      25             : 
      26             :   /// Initializes a new instance of the MqttMessage class.
      27           6 :   MqttMessage();
      28             : 
      29             :   /// Initializes a new instance of the MqttMessage class.
      30           0 :   MqttMessage.fromHeader(MqttHeader header) {
      31             :     header = header;
      32             :   }
      33             : 
      34             :   /// Creates a new instance of an MQTT Message based on a raw message stream.
      35             :   static MqttMessage createFrom(MqttByteBuffer messageStream) {
      36             :     try {
      37           4 :       MqttHeader header = new MqttHeader();
      38             :       // Pass the input stream sequentially through the component deserialization(create) methods
      39             :       // to build a full MqttMessage.
      40           4 :       header = new MqttHeader.fromByteBuffer(messageStream);
      41             :       final MqttMessage message =
      42           4 :       MqttMessageFactory.getMessage(header, messageStream);
      43             :       return message;
      44             :     } catch (InvalidHeaderException) {
      45           1 :       throw new InvalidMessageException(
      46             :           "The data provided in the message stream was not a valid MQTT Message");
      47             :     }
      48             :   }
      49             : 
      50             :   /// Writes the message to the supplied stream.
      51             :   void writeTo(MqttByteBuffer messageStream) {
      52           8 :     header.writeTo(0, messageStream);
      53             :   }
      54             : 
      55             :   /// Reads a message from the supplied stream.
      56             :   void readFrom(MqttByteBuffer messageStream) {}
      57             : 
      58             :   String toString() {
      59           6 :     final StringBuffer sb = new StringBuffer();
      60           6 :     sb.write("MQTTMessage of type ");
      61          24 :     sb.writeln(this.header.messageType.toString());
      62          18 :     sb.writeln(header.toString());
      63           6 :     return sb.toString();
      64             :   }
      65             : }

Generated by: LCOV version 1.10