package se.sics.gvod.common.msgs;
import io.netty.buffer.ByteBuf;
import java.util.List;
import se.sics.gvod.net.VodAddress;
import se.sics.gvod.common.UtilityVod;
import se.sics.gvod.net.util.UserTypesDecoderFactory;
public class ReferencesMsgFactory {
public static class Request extends DirectMsgNettyFactory.Request {
private Request() {
}
public static ReferencesMsg.Request fromBuffer(ByteBuf buffer)
throws MessageDecodingException {
return (ReferencesMsg.Request) new ReferencesMsgFactory.Request().decode(buffer);
}
@Override
protected ReferencesMsg.Request process(ByteBuf buffer) throws MessageDecodingException {
int ref = UserTypesDecoderFactory.readUnsignedIntAsTwoBytes(buffer);
UtilityVod utility = (UtilityVod) UserTypesDecoderFactory.readUtility(buffer);
List<VodAddress> children = UserTypesDecoderFactory.readListVodAddresses(buffer);
ReferencesMsg.Request msg = new ReferencesMsg.Request(vodSrc, vodDest,
ref, utility, children);
return msg;
}
}
public static class Response extends DirectMsgNettyFactory.Response {
private Response() {
}
public static ReferencesMsg.Response fromBuffer(ByteBuf buffer)
throws MessageDecodingException {
return (ReferencesMsg.Response)
new ReferencesMsgFactory.Response().decode(buffer);
}
@Override
protected ReferencesMsg.Response process(ByteBuf buffer) throws MessageDecodingException {
int ref = UserTypesDecoderFactory.readUnsignedIntAsTwoBytes(buffer);
UtilityVod utility = (UtilityVod) UserTypesDecoderFactory.readUtility(buffer);
List<VodAddress> children = UserTypesDecoderFactory.readListVodAddresses(buffer);
return new ReferencesMsg.Response(vodSrc, vodDest,
timeoutId, ref, utility, children);
}
}
};