view datagear/command/PutCommand.cs @ 40:7276e3429c99

fix NetworkStream Error
author riono <e165729@ie.u-ryukyu.ac.jp>
date Tue, 25 May 2021 03:02:38 +0900
parents 9217d14cc220
children 0cd765be9693
line wrap: on
line source

using System;
using System.IO;
using Christie_net.datagear.dg;
using Christie_net.Test.Example.RemoteTake;
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 byte[] 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);
            // stream.Write(dataSize);
            // stream.Write(data);

            byte[] data = new MessagePackDataGear<object>(dg.GetData()).GetMessagePack();
            byte[] command = MessagePackSerializer.Serialize(CreateRemoteMessage(data));

            // Debug
            //var ms = MessagePackSerializer.Deserialize<RemoteMessage>(command);
            //Console.WriteLine("***type:" + ms.type +  " key:" + ms.key + " fromDgm:" + ms.fromDmgName + " class:" + ms.clazz +" data: null");
            // RTCommand cmd = (RTCommand) MessagePackSerializer.Deserialize<object>(data);
            // Console.WriteLine("data:" + cmd.line);

            stream.Write(command);

            stream.Position = 0;
        } catch (IOException e) {
            Console.WriteLine(e.StackTrace);
        }
        return stream.ToArray();
    }
}
}