package se.sics.gvod.video.msgs; import io.netty.buffer.ByteBuf; import se.sics.gvod.common.msgs.MessageDecodingException; import se.sics.gvod.common.msgs.DirectMsgNettyFactory; import se.sics.gvod.net.msgs.DirectMsg; import se.sics.gvod.net.util.UserTypesDecoderFactory; public class VideoConnectionMsgFactory { public static class Request extends DirectMsgNettyFactory.Request { Request() { } public static VideoConnectionMsg.Request fromBuffer(ByteBuf buffer) throws MessageDecodingException { return (VideoConnectionMsg.Request) new VideoConnectionMsgFactory.Request().decode(buffer); } @Override protected VideoConnectionMsg.Request process(ByteBuf buffer) throws MessageDecodingException { boolean randomRequest = UserTypesDecoderFactory.readBoolean(buffer); return new VideoConnectionMsg.Request(vodSrc, vodDest, randomRequest); } } public static class Response extends DirectMsgNettyFactory.Response { private Response() { } public static VideoConnectionMsg.Response fromBuffer(ByteBuf buffer) throws MessageDecodingException { return (VideoConnectionMsg.Response) new VideoConnectionMsgFactory.Response().decode(buffer); } @Override protected VideoConnectionMsg.Response process(ByteBuf buffer) throws MessageDecodingException { boolean randomRequest = UserTypesDecoderFactory.readBoolean(buffer); boolean acceptConnection = UserTypesDecoderFactory.readBoolean(buffer); return new VideoConnectionMsg.Response(vodSrc, vodDest, timeoutId, randomRequest, acceptConnection); } } public static class Disconnect extends DirectMsgNettyFactory.Oneway { private Disconnect() { } public static VideoConnectionMsg.Disconnect fromBuffer(ByteBuf buffer) throws MessageDecodingException { return (VideoConnectionMsg.Disconnect) new VideoConnectionMsgFactory.Disconnect().decode(buffer); } @Override protected VideoConnectionMsg.Disconnect process(ByteBuf buffer) throws MessageDecodingException { boolean randomConnection = UserTypesDecoderFactory.readBoolean(buffer); return new VideoConnectionMsg.Disconnect(vodSrc, vodDest, randomConnection); } } };