view 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 source

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;
    }
}
}