/** * This software is GPLv2. * Take a look at the LICENSE file for more info. */ package de.tu.dresden.dud.dc.ManagementMessage; import java.util.ArrayList; import org.apache.log4j.Logger; import de.tu.dresden.dud.dc.Util; import de.tu.dresden.dud.dc.InfoService.InfoServiceInfo; /** * @author klobs * */ public class ManagementMessageInfo extends ManagementMessage { // Logging private static Logger log = Logger.getLogger(ManagementMessageInfo.class); private InfoServiceInfo info = null; /** * Handles the INFO management message. * Handling means interpreting the payload and setting corresponding * internal flags. * Introduced in protocol Version 0.0.5 * * Fields are: * TYPE OF INFO 2 Byte * Arguments. See InfoServiceRequest and subclasses for more info. * * @param i an instance of InfoServiceRequest */ public ManagementMessageInfo(InfoServiceInfo i){ ArrayList<byte[]> b = new ArrayList<byte[]>(); byte[] messagetype = Util.stuffIntIntoShort(ManagementMessage.INFO); b.add(messagetype ); b.add(i.getInfo() ); this.message = craftMessage(b); log.debug("Sending INFO"); } /** * Handles the INFO management message. * Handling means interpreting the payload and setting corresponding * internal flags. * Introduced in protocol Version 0.0.5 * * Fields are: * TYPE OF INFO REQUEST 2 Byte * Arguments. See InfoServiceRequest and subclasses for more info. * * @param payload the payload */ public ManagementMessageInfo(byte[] payload){ message = payload; if(payload.length < 2){ log.warn( "Payload length < minimal expected payload Length! Dropping packet!"); errorProcessing = true; return; } info = InfoServiceInfo.infoFactory(payload); } public InfoServiceInfo getInfo(){ return info; } }