diff datagear/command/PutCommand.cs @ 16:7352793b5dbe

add some Commands
author riono <e165729@ie.u-ryukyu.ac.jp>
date Sun, 22 Nov 2020 01:52:22 +0900
parents
children 3aaa77e12493
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/datagear/command/PutCommand.cs	Sun Nov 22 01:52:22 2020 +0900
@@ -0,0 +1,33 @@
+using System;
+using System.IO;
+using Christie_net.datagear.dg;
+using MessagePack;
+
+namespace Christie_net.datagear.command {
+public class PutCommand : Command{
+    public PutCommand(CommandBuilder cb) : base(cb) {
+        this.clazz = dg.GetClazz();
+    }
+    
+    public override void Execute() {
+    }
+
+    // commandとdata, dataSizeをMemoryStreamに変換する
+    public override MemoryStream Convert() {
+        MemoryStream stream = new MemoryStream();
+
+        try {
+            byte[] command = MessagePackSerializer.Serialize(CreateRemoteMessage());
+            byte[] data = new MessagePackDataGear<object>(dg.GetData()).GetMessagePack();
+            byte[] dataSize = MessagePackSerializer.Serialize(data.Length);
+
+            stream.Write(command, 0, command.Length);
+            stream.Write(data, 0, data.Length);
+            stream.Write(dataSize, 0, dataSize.Length);
+        } catch (IOException e) {
+            Console.WriteLine(e.StackTrace);
+        }
+        return stream;
+    }
+}
+}
\ No newline at end of file