package pl.radical.open.gg.packet.handlers;
import pl.radical.open.gg.GGException;
import pl.radical.open.gg.IIncommingMessage;
import pl.radical.open.gg.IncomingMessage;
import pl.radical.open.gg.packet.in.GGRecvMsg80;
import pl.radical.open.gg.utils.GGUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Created on 2010-03-18
*
* @author <a href="mailto:klacia.85@gmail.com">Kamil Klatkowski</a>
* @since 1.7.0
*/
public class GGRecvMsg80PacketHandler implements PacketHandler {
private static final Logger LOG = LoggerFactory.getLogger(GGRecvMsg80PacketHandler.class);
/**
* @see pl.mn.communicator.packet.handlers.PacketHandler#handle(pl.mn.communicator.packet.handlers.Context)
*/
@Override
public void handle(final PacketContext context) throws GGException {
if (LOG.isDebugEnabled()) {
LOG.debug("GGRecvMsg80 packet received.");
LOG.debug("PacketHeader: " + context.getHeader());
LOG.debug("PacketBody: " + GGUtils.prettyBytesToString(context.getPackageContent()));
}
final GGRecvMsg80 recvMsg = new GGRecvMsg80(context.getPackageContent());
if (LOG.isTraceEnabled()) {
LOG.trace(recvMsg.toString());
}
context.getSessionAccessor().notifyGGPacketReceived(recvMsg);
// FIXME only plain message
final IIncommingMessage incommingMessage = new IncomingMessage(recvMsg.getSender(), recvMsg.getPlainMessage(), recvMsg
.getMessageSeq(), recvMsg.getTime(), recvMsg.getMsgClass());
context.getSessionAccessor().notifyMessageArrived(incommingMessage);
}
}