You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2014/01/03 22:51:05 UTC
svn commit: r1555261 - in
/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands:
PUBLISH.cs PUBREC.cs PUBREL.cs
Author: tabish
Date: Fri Jan 3 21:51:05 2014
New Revision: 1555261
URL: http://svn.apache.org/r1555261
Log:
https://issues.apache.org/jira/browse/AMQNET-458
Add more to Commands code.
Modified:
activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBLISH.cs
activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREC.cs
activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREL.cs
Modified: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBLISH.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBLISH.cs?rev=1555261&r1=1555260&r2=1555261&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBLISH.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBLISH.cs Fri Jan 3 21:51:05 2014
@@ -16,6 +16,7 @@
//
using System;
using System.IO;
+using System.Text;
using Apache.NMS.MQTT.Transport;
using Apache.NMS.MQTT.Protocol;
@@ -32,11 +33,19 @@ namespace Apache.NMS.MQTT.Commands
/// </summary>
public class PUBLISH : BaseCommand
{
+ public enum QOS
+ {
+ QOS_AT_MOST_ONCE,
+ QOS_AT_LEAST_ONCE,
+ QOS_EXACTLY_ONCE
+ };
+
public const byte TYPE = 3;
public const byte DEFAULT_HEADER = 0x30;
public PUBLISH() : base(new Header(DEFAULT_HEADER))
{
+ QoSLevel = (int)QOS.QOS_AT_LEAST_ONCE;
}
public PUBLISH(Header header) : base(header)
@@ -94,6 +103,41 @@ namespace Apache.NMS.MQTT.Commands
get { return this.payload; }
set { this.payload = value; }
}
+
+ public override void Encode(BinaryWriter writer)
+ {
+ writer.Write(topicName);
+
+ if (QoSLevel == (int)QOS.QOS_AT_MOST_ONCE)
+ {
+ writer.Write(messageId);
+ }
+
+ if (payload != null && payload.Length != 0)
+ {
+ writer.Write(payload);
+ }
+ }
+
+ public override void Decode(BinaryReader reader)
+ {
+ TopicName = reader.ReadString();
+
+ if (QoSLevel == (int)QOS.QOS_AT_MOST_ONCE)
+ {
+ MessageId = reader.ReadInt16();
+ }
+
+ MemoryStream stream = reader.BaseStream as MemoryStream;
+
+ long size = stream.Length - stream.Position;
+
+ byte[] buffer = new byte[size];
+ for (long i = 0; i < size; ++i)
+ {
+ buffer[i] = (byte)stream.ReadByte();
+ }
+ }
}
}
Modified: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREC.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREC.cs?rev=1555261&r1=1555260&r2=1555261&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREC.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREC.cs Fri Jan 3 21:51:05 2014
@@ -21,7 +21,7 @@ using Apache.NMS.MQTT.Protocol;
namespace Apache.NMS.MQTT.Commands
{
- public class PUBREC : BaseCommand
+ public class PUBREC : Response
{
public const byte TYPE = 5;
public const byte DEFAULT_HEADER = 0x50;
@@ -43,6 +43,16 @@ namespace Apache.NMS.MQTT.Commands
{
get { return true; }
}
+
+ public override void Encode(BinaryWriter writer)
+ {
+ writer.Write(CommandId);
+ }
+
+ public override void Decode(BinaryReader reader)
+ {
+ CorrelationId = reader.ReadInt16();
+ }
}
}
Modified: activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREL.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREL.cs?rev=1555261&r1=1555260&r2=1555261&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREL.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.MQTT/trunk/src/main/csharp/Commands/PUBREL.cs Fri Jan 3 21:51:05 2014
@@ -21,7 +21,7 @@ using Apache.NMS.MQTT.Protocol;
namespace Apache.NMS.MQTT.Commands
{
- public class PUBREL : BaseCommand
+ public class PUBREL : Response
{
public const byte TYPE = 6;
public const byte DEFAULT_HEADER = 0x62;
@@ -43,6 +43,16 @@ namespace Apache.NMS.MQTT.Commands
{
get { return true; }
}
+
+ public override void Encode(BinaryWriter writer)
+ {
+ writer.Write(CommandId);
+ }
+
+ public override void Decode(BinaryReader reader)
+ {
+ CorrelationId = reader.ReadInt16();
+ }
}
}