package se.sics.gvod.gradient.msgs;
import io.netty.buffer.ByteBuf;
import se.sics.gvod.common.VodDescriptor;
import java.util.List;
import se.sics.gvod.common.msgs.MessageDecodingException;
import se.sics.gvod.common.msgs.RelayMsgNettyFactory;
import se.sics.gvod.net.msgs.RewriteableMsg;
import se.sics.gvod.net.util.UserTypesDecoderFactory;
public class GradientSetsExchangeMsgFactory {
public static class Request extends RelayMsgNettyFactory.Request {
Request() {
}
public static GradientSetsExchangeMsg.Request fromBuffer(ByteBuf buffer)
throws MessageDecodingException {
return (GradientSetsExchangeMsg.Request)
new GradientSetsExchangeMsgFactory.Request().decode(buffer);
}
@Override
protected RewriteableMsg process(ByteBuf buffer) throws MessageDecodingException {
return new GradientSetsExchangeMsg.Request(gvodSrc, gvodDest, clientId, remoteId, timeoutId);
}
}
public static class Response extends RelayMsgNettyFactory.Response {
private Response() {
}
public static GradientSetsExchangeMsg.Response fromBuffer(ByteBuf buffer)
throws MessageDecodingException {
return (GradientSetsExchangeMsg.Response)
new GradientSetsExchangeMsgFactory.Response().decode(buffer);
}
@Override
protected RewriteableMsg process(ByteBuf buffer) throws MessageDecodingException {
List<VodDescriptor> similarSet = UserTypesDecoderFactory.readListVodNodeDescriptors(buffer);
return new GradientSetsExchangeMsg.Response(gvodSrc, gvodDest, nextDest, timeoutId,
similarSet);
}
}
};