class ClientRequest implements ClientListenerRequest {
    /** Request id. */
    private final long reqId;

    /**
     * Constructor.
     *
     * @param reader Reader.
     */
    public ClientRequest(BinaryRawReader reader) {
        reqId = reader.readLong();
    }

    /**
     * Constructor.
     *
     * @param reqId Request id.
     */
    public ClientRequest(long reqId) {
        this.reqId = reqId;
    }

    /** {@inheritDoc} */
    @Override public long requestId() {
        return reqId;
    }

    /**
     * Processes the request.
     *
     * @return Response.
     */
    public ClientResponse process(ClientConnectionContext ctx) {
        return new ClientResponse(reqId);
    }

    /**
     * Processes the request asynchronously.
     *
     * @return Future for response.
     */
    public IgniteInternalFuture<ClientResponse> processAsync(ClientConnectionContext ctx) {<FILL_FUNCTION_BODY>}

    /**
     * @param ctx Client connection context.
     * @return {@code True} if request should be processed asynchronously.
     */
    public boolean isAsync(ClientConnectionContext ctx) {
        return false;
    }
}

        throw new IllegalStateException("Async operation is not implemented for request " + getClass().getName());
    
<no_super_class>