package com.huangzj.base.cmd;

import com.huangzj.cmd.gen.CmdRpcEnvelope;

/**
 * 一条 CmdRpc 业务命令：入参出参都是CmdRpcEnvelope，具体 PB 在实现里自己拆。
 */
public interface GameCommand {

    /**
     * 处理一帧 RPC：request 里带好 service/method/payload，返回完整CmdRpcEnvelope（含 payload）。
     * 具体异常策略由上层 {@code CmdRpcDispatch} 决定是否包进CmdRpcEnvelope或断开连接。
     */
    CmdRpcEnvelope execute(CommandContext ctx, CmdRpcEnvelope request) throws Exception;
}
