package net.northking.cctp.upperComputer.driver.agent.command.protocol;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

/**
 * 发送给Agent的指令
 */
public interface ProtocolCommand<T> {
    /**
     * 每个指令具备的唯一id
     *
     * @return 指令id
     */
    int getCommandId();

    /**
     * Session将调用此方法进行数据发送
     *
     * @param output 输出对象
     */
    void doSend(DataOutput output) throws IOException;

    T buildReceive(DataInput input) throws IOException;
}
