package edu.uw.zookeeper.protocol.client;
import io.netty.buffer.ByteBuf;
import java.io.IOException;
import com.google.common.base.Optional;
import com.google.common.base.Supplier;
import edu.uw.zookeeper.net.Codec;
import edu.uw.zookeeper.protocol.FourLetterResponse;
import edu.uw.zookeeper.protocol.Message;
public class AnonymousClientCodec implements Codec<Message.ClientAnonymous, Message.ServerAnonymous, Message.ClientAnonymous, Message.ServerAnonymous> {
public static AnonymousClientCodec getInstance() {
return Holder.INSTANCE.get();
}
public static enum Holder implements Supplier<AnonymousClientCodec> {
INSTANCE(new AnonymousClientCodec());
private final AnonymousClientCodec instance;
private Holder(AnonymousClientCodec instance) {
this.instance = instance;
}
@Override
public AnonymousClientCodec get() {
return instance;
}
}
protected AnonymousClientCodec() {}
@Override
public Class<Message.ClientAnonymous> encodeType() {
return Message.ClientAnonymous.class;
}
@Override
public void encode(Message.ClientAnonymous input, ByteBuf output)
throws IOException {
input.encode(output);
}
@Override
public Class<Message.ServerAnonymous> decodeType() {
return Message.ServerAnonymous.class;
}
@Override
public Optional<? extends Message.ServerAnonymous> decode(ByteBuf input)
throws IOException {
return FourLetterResponse.decode(input);
}
}