/* * Copyright (c) 2012-2015 The original author or authors * ------------------------------------------------------ * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Apache License v2.0 which accompanies this distribution. * * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html * * The Apache License v2.0 is available at * http://www.opensource.org/licenses/apache2.0.php * * You may elect to redistribute this code under either of these licenses. */ package org.eclipse.moquette.proto.messages; /** * Basic abstract message for all MQTT protocol messages. * * @author andrea */ public abstract class AbstractMessage { public static final byte CONNECT = 1; // Client request to connect to Server public static final byte CONNACK = 2; // Connect Acknowledgment public static final byte PUBLISH = 3; // Publish message public static final byte PUBACK = 4; // Publish Acknowledgment public static final byte PUBREC = 5; //Publish Received (assured delivery part 1) public static final byte PUBREL = 6; // Publish Release (assured delivery part 2) public static final byte PUBCOMP = 7; //Publish Complete (assured delivery part 3) public static final byte SUBSCRIBE = 8; //Client Subscribe request public static final byte SUBACK = 9; // Subscribe Acknowledgment public static final byte UNSUBSCRIBE = 10; //Client Unsubscribe request public static final byte UNSUBACK = 11; // Unsubscribe Acknowledgment public static final byte PINGREQ = 12; //PING Request public static final byte PINGRESP = 13; //PING Response public static final byte DISCONNECT = 14; //Client is Disconnecting public static enum QOSType { MOST_ONE, LEAST_ONE, EXACTLY_ONCE, RESERVED; public static String formatQoS(QOSType qos) { return String.format("%d - %s", qos.ordinal(), qos.name()); } } //type protected boolean m_dupFlag; protected QOSType m_qos; protected boolean m_retainFlag; protected int m_remainingLength; protected byte m_messageType; public byte getMessageType() { return m_messageType; } public void setMessageType(byte messageType) { this.m_messageType = messageType; } public boolean isDupFlag() { return m_dupFlag; } public void setDupFlag(boolean dupFlag) { this.m_dupFlag = dupFlag; } public QOSType getQos() { return m_qos; } public void setQos(QOSType qos) { this.m_qos = qos; } public boolean isRetainFlag() { return m_retainFlag; } public void setRetainFlag(boolean retainFlag) { this.m_retainFlag = retainFlag; } /** * TOBE used only internally */ public int getRemainingLength() { return m_remainingLength; } /** * TOBE used only internally */ public void setRemainingLength(int remainingLength) { this.m_remainingLength = remainingLength; } }