Extracted common pojo messages definitions

This commit is contained in:
andrea
2013-09-10 15:00:18 +02:00
parent d9131b4b07
commit 2886aa0bab
20 changed files with 95 additions and 0 deletions
@@ -1,80 +0,0 @@
package org.dna.mqtt.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;
}
//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;
}
}
@@ -1,26 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
* The attributes Qos, Dup and Retain aren't used.
*
* @author andrea
*/
public class ConnAckMessage extends AbstractMessage {
public static final byte CONNECTION_ACCEPTED = 0x00;
public static final byte UNNACEPTABLE_PROTOCOL_VERSION = 0x01;
public static final byte IDENTIFIER_REJECTED = 0x02;
public static final byte SERVER_UNAVAILABLE = 0x03;
public static final byte BAD_USERNAME_OR_PASSWORD = 0x04;
public static final byte NOT_AUTHORIZED = 0x05;
private byte m_returnCode;
public byte getReturnCode() {
return m_returnCode;
}
public void setReturnCode(byte returnCode) {
this.m_returnCode = returnCode;
}
}
@@ -1,140 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
* The attributes Qos, Dup and Retain aren't used for Connect message
*
* @author andrea
*/
public class ConnectMessage extends AbstractMessage {
String m_protocolName;
byte m_procotolVersion;
//Connection flags
boolean m_cleanSession;
boolean m_willFlag;
byte m_willQos;
boolean m_willRetain;
boolean m_passwordFlag;
boolean m_userFlag;
int m_keepAlive;
//Variable part
String m_username;
String m_password;
String m_clientID;
String m_willtopic;
String m_willMessage;
public boolean isCleanSession() {
return m_cleanSession;
}
public void setCleanSession(boolean cleanSession) {
this.m_cleanSession = cleanSession;
}
public int getKeepAlive() {
return m_keepAlive;
}
public void setKeepAlive(int keepAlive) {
this.m_keepAlive = keepAlive;
}
public boolean isPasswordFlag() {
return m_passwordFlag;
}
public void setPasswordFlag(boolean passwordFlag) {
this.m_passwordFlag = passwordFlag;
}
public byte getProcotolVersion() {
return m_procotolVersion;
}
public void setProcotolVersion(byte procotolVersion) {
this.m_procotolVersion = procotolVersion;
}
public String getProtocolName() {
return m_protocolName;
}
public void setProtocolName(String protocolName) {
this.m_protocolName = protocolName;
}
public boolean isUserFlag() {
return m_userFlag;
}
public void setUserFlag(boolean userFlag) {
this.m_userFlag = userFlag;
}
public boolean isWillFlag() {
return m_willFlag;
}
public void setWillFlag(boolean willFlag) {
this.m_willFlag = willFlag;
}
public byte getWillQos() {
return m_willQos;
}
public void setWillQos(byte willQos) {
this.m_willQos = willQos;
}
public boolean isWillRetain() {
return m_willRetain;
}
public void setWillRetain(boolean willRetain) {
this.m_willRetain = willRetain;
}
public String getPassword() {
return m_password;
}
public void setPassword(String password) {
this.m_password = password;
}
public String getUsername() {
return m_username;
}
public void setUsername(String username) {
this.m_username = username;
}
public String getClientID() {
return m_clientID;
}
public void setClientID(String clientID) {
this.m_clientID = clientID;
}
public String getWillTopic() {
return m_willtopic;
}
public void setWillTopic(String topic) {
this.m_willtopic = topic;
}
public String getWillMessage() {
return m_willMessage;
}
public void setWillMessage(String willMessage) {
this.m_willMessage = willMessage;
}
}
@@ -1,9 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
* Doesn't care DUP, QOS and RETAIN flags.
*
* @author andrea
*/
public class DisconnectMessage extends ZeroLengthMessage {
}
@@ -1,22 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
* Base class for alla the messages that carries only MessageID. (PUBACK, PUBREC,
* PUBREL, PUBCOMP, UNSUBACK)
*
* The flags dup, QOS and Retained doesn't take care.
*
* @author andrea
*/
public abstract class MessageIDMessage extends AbstractMessage {
private Integer m_messageID; //could be null if Qos is == 0
public Integer getMessageID() {
return m_messageID;
}
public void setMessageID(Integer messageID) {
this.m_messageID = messageID;
}
}
@@ -1,9 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
* Doesn't care DUP, QOS and RETAIN flags.
*
* @author andrea
*/
public class PingReqMessage extends ZeroLengthMessage {
}
@@ -1,8 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
* Doesn't care DUP, QOS and RETAIN flags.
* @author andrea
*/
public class PingRespMessage extends ZeroLengthMessage {
}
@@ -1,9 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
* Placeholder for PUBACK message.
*
* @author andrea
*/
public class PubAckMessage extends MessageIDMessage {
}
@@ -1,10 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
* Placeholder for PUBREC message.
*
* @author andrea
*/
public class PubRecMessage extends MessageIDMessage {
}
@@ -1,8 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
*
* @author andrea
*/
public class PubRelMessage extends MessageIDMessage {
}
@@ -1,36 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
*
* @author andrea
*/
public class PublishMessage extends MessageIDMessage {
private String m_topicName;
// private Integer m_messageID; //could be null if Qos is == 0
private byte[] m_payload;
/*public Integer getMessageID() {
return m_messageID;
}
public void setMessageID(Integer messageID) {
this.m_messageID = messageID;
}*/
public String getTopicName() {
return m_topicName;
}
public void setTopicName(String topicName) {
this.m_topicName = topicName;
}
public byte[] getPayload() {
return m_payload;
}
public void setPayload(byte[] payload) {
this.m_payload = payload;
}
}
@@ -1,21 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author andrea
*/
public class SubAckMessage extends MessageIDMessage {
List<QOSType> m_types = new ArrayList<QOSType>();
public List<QOSType> types() {
return m_types;
}
public void addType(QOSType type) {
m_types.add(type);
}
}
@@ -1,44 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author andrea
*/
public class SubscribeMessage extends MessageIDMessage {
public static class Couple {
private byte m_qos;
private String m_topic;
public Couple(byte qos, String topic) {
m_qos = qos;
m_topic = topic;
}
public byte getQos() {
return m_qos;
}
public String getTopic() {
return m_topic;
}
}
private List<Couple> m_subscriptions = new ArrayList<Couple>();
public SubscribeMessage() {
//Subscribe has always QoS 1
m_qos = AbstractMessage.QOSType.LEAST_ONE;
}
public List<Couple> subscriptions() {
return m_subscriptions;
}
public void addSubscription(Couple subscription) {
m_subscriptions.add(subscription);
}
}
@@ -1,9 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
*
* @author andrea
*/
public class UnsubAckMessage extends MessageIDMessage {
}
@@ -1,20 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author andrea
*/
public class UnsubscribeMessage extends MessageIDMessage {
List<String> m_types = new ArrayList<String>();
public List<String> topics() {
return m_types;
}
public void addTopic(String type) {
m_types.add(type);
}
}
@@ -1,9 +0,0 @@
package org.dna.mqtt.moquette.proto.messages;
/**
*
* @author andrea
*/
public abstract class ZeroLengthMessage extends AbstractMessage {
}