package com.limegroup.gnutella.dht.io;
import java.io.IOException;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import org.limewire.mojito.messages.MessageFactory;
import com.limegroup.gnutella.messages.BadPacketException;
import com.limegroup.gnutella.messages.Message;
import com.limegroup.gnutella.messages.Message.Network;
import com.limegroup.gnutella.messages.MessageFactory.MessageParser;
/**
* The LimeDHTMessageParser class delegates parse
* requests to Mojito's MessageFactory
*/
class MessageParserDelegate implements MessageParser {
/**
* A handle to Mojito's MessageFactory
*/
private final MessageFactory factory;
public MessageParserDelegate(MessageFactory factory) {
this.factory = factory;
}
public Message parse(byte[] header, byte[] payload,
Network network, byte softMax, SocketAddress addr) throws BadPacketException, IOException {
return (Message)factory.createMessage(addr,
ByteBuffer.wrap(header),
ByteBuffer.wrap(payload));
}
}