package se.sics.gvod.bootstrap.msgs; import io.netty.buffer.ByteBuf; import java.util.HashMap; import java.util.Map; 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 MonitorMsgFactory extends DirectMsgNettyFactory.Oneway { private MonitorMsgFactory() { } public static MonitorMsg fromBuffer(ByteBuf buffer) throws MessageDecodingException { return (MonitorMsg) new MonitorMsgFactory().decode(buffer); } @Override protected MonitorMsg process(ByteBuf buffer) throws MessageDecodingException { int size = UserTypesDecoderFactory.readUnsignedIntAsOneByte(buffer); Map<String, String> attrs = new HashMap<String, String>(); for (int i = 0; i < size; i++) { String key = UserTypesDecoderFactory.readStringLength256(buffer); String val = UserTypesDecoderFactory.readStringLength256(buffer); attrs.put(key, val); } return new MonitorMsg(vodSrc, vodDest, attrs); } };