package com.cwa.httpserver.message;
import com.cwa.gamecore.io.GameInput;
import com.cwa.gamecore.message.AbstractRequest;
/**
* 如果服务器采用HTTP协议,那么请求消息需要玩家ID来标识该请求是谁发送的。
* HttpRequest的解码方法首先会读一个int型的玩家ID,然后会调用方法decode()读剩余
* 数据。
*/
public abstract class HttpRequest extends AbstractRequest {
private int userId;
public HttpRequest(int cmdId) {
super(cmdId);
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
@Override
public final void decodeBody(GameInput in) {
readUserId(in);
decode(in);
}
/**
* 读(整型)玩家ID。
*/
protected void readUserId(GameInput in) {
userId = in.getInt();
}
/**
* 读其余数据。这个方法由子类实现。
*/
public abstract void decode(GameInput in);
@Override
public String toString() {
return getClass().getSimpleName() + "{userId=" + userId + '}';
}
}