HOME PCB
..CommandHandler.javaHost.java
package Program;

import Common.ByteObject;
import Common.Utils;
import Communication.Messages.Handler.MessageHandler;
import Communication.Messages.Handler.MessageHandlerImpl;
import Communication.Messages.Service.MessageSessionImpl;
import Program.Data.CommandData;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

@MessageHandler(name = "Commands", data = CommandData.class, maxSize = 1024)
public class CommandHandler implements MessageHandlerImpl
{
    @Override
    public void send(DataOutputStream dos, CommandData o, MessageSessionImpl session)
    {
        try
        {
            dos.writeLong(o.time);
            ByteObject.writeString(dos, o.status.toString());
            ByteObject.writeString(dos, o.command.toString());
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    @Override
    public void receive(DataInputStream dis, MessageSessionImpl session)
    {
        CommandData commandData = new CommandData();
        try
        {
            commandData.time = dis.readLong();
            commandData.status = CommandStatus.valueOf(ByteObject.readString(dis));
            commandData.command = CommandSimple.valueOf(ByteObject.readString(dis));
            switch (commandData.status)
            {
                case Success:
                {
                    System.out.println(commandData.command + " " + commandData.status);
                    break;
                }
                case Failed:
                {
                    System.out.println(commandData.command + " " + commandData.status);
                    break;
                }
            }
        }
        catch (Exception e)
        {
            e.printStackTrace(System.out);
        }
    }
}