package com.mogujie.tt.imlib.proto;
import java.util.ArrayList;
import java.util.List;
import com.mogujie.tt.config.ProtocolConstant;
import com.mogujie.tt.config.SysConstant;
import com.mogujie.tt.log.Logger;
import com.mogujie.tt.packet.base.DataBuffer;
import com.mogujie.tt.packet.base.DefaultHeader;
import com.mogujie.tt.packet.base.Header;
import com.mogujie.tt.packet.base.Packet;
/**
* MsgServerPacket:请求(返回)登陆消息服务器 yugui 2014-05-04
*/
public class AckGroupUnreadMsgPacket extends Packet {
private Logger logger = Logger.getLogger(AckGroupUnreadMsgPacket.class);
public AckGroupUnreadMsgPacket(String contactId) {
mRequest = new PacketRequest(contactId);
setNeedMonitor(true);
}
public AckGroupUnreadMsgPacket() {
setNeedMonitor(true);
}
@Override
public DataBuffer encode() {
Header header = mRequest.getHeader();
DataBuffer headerBuffer = header.encode();
DataBuffer bodyBuffer = new DataBuffer();
PacketRequest req = (PacketRequest) mRequest;
if (null == req)
return null;
bodyBuffer.writeString(req.groupId);
int headLength = headerBuffer.readableBytes();
int bodyLength = bodyBuffer.readableBytes();
DataBuffer buffer = new DataBuffer(headLength + bodyLength);
buffer.writeDataBuffer(headerBuffer);
buffer.writeDataBuffer(bodyBuffer);
return buffer;
}
@Override
public void decode(DataBuffer buffer) {
// if (null == buffer)
// return;
// try {
// PacketResponse res = new PacketResponse();
//
// Header header = new Header();
// header.decode(buffer);
// res.setHeader(header);
//
// // starts filling from here
// String sessionId = buffer.readString();
// int cnt = buffer.readInt();
// for (int i = 0; i < cnt; ++i) {
// MessageEntity entity = new MessageEntity();
//
// String id = buffer.readString();
// String name = buffer.readString();
// String nickName = buffer.readString();
// String avatarUrl = buffer.readString();
// int createTime = buffer.readInt();
// byte msgType = buffer.readByte();
// int msgLen = buffer.readInt();
// byte[] msgContent = null;
// if (msgLen > 0) {
// msgContent = buffer.readBytes(msgLen);
// }
//
// entity.fromId = id;
// entity.toId = IMLoginManager.instance().getLoginId();
// entity.createTime = createTime;
// entity.msgType = msgType;
// entity.msgLen = msgLen;
// entity.msgData = msgContent;
// entity.sessionId = id;
// entity.offline = false;
//
// logger.d("unread#1");
// logger.d("unread#got unreadmsg:%s", entity);
// res.entityList.add(entity);
// }
//
// mResponse = res;
// } catch (Exception e) {
// logger.e(e.getMessage());
// }
}
public static class PacketRequest extends Request {
public String groupId;
public PacketRequest(String groupId) {
this.groupId = groupId;
Header header = new DefaultHeader(ProtocolConstant.SID_GROUP,
ProtocolConstant.CID_GROUP_MSG_READ_ACK);
int contentLength = getUtf8Bytes(groupId).length;
header.setLength(SysConstant.PROTOCOL_HEADER_LENGTH + (4 + contentLength));
setHeader(header);
}
}
public static class PacketResponse extends Response {
public List<MessageEntity> entityList = new ArrayList<MessageEntity>();
}
}