package com.cgcl.cloudesk.manage.packet; import com.cgcl.cloudesk.manage.com.VMInfo; import com.cgcl.cloudesk.manage.config.NetConfig; import com.cgcl.cloudesk.manage.config.PacketConfig; import com.cgcl.cloudesk.manage.util.IPUtil; import com.cgcl.cloudesk.manage.util.Serializer; public class RestoreSceneRspPacket extends PacketBase { public VMInfo[] VMs; public RestoreSceneRspPacket() { super(PacketConfig.kRestoreSceneRspPacketType, PacketConfig.kAuthorizeModuleId); } public RestoreSceneRspPacket(VMInfo[] VMs) { super(PacketConfig.kRestoreSceneRspPacketType, PacketConfig.kAuthorizeModuleId); this.VMs = VMs; } public int deserialize(byte[] buf, int offset) { int length = super.deserialize(buf, offset); int VMNum = Serializer.deserializeInt(buf, offset + length); length += 4; System.out.println("VMNum = " + VMNum); VMs = new VMInfo[VMNum]; for(int i = 0 ; i < VMNum ; i++) { System.out.println("i = " + i); VMs[i] = new VMInfo(); length += VMs[i].deserialize(buf, offset + length); if( VMs[i].getOs().equals("windows") ) { NetConfig.windowsIP = IPUtil.intToString(VMs[i].getIp()); System.out.println("NetConfig.windowsIP : " + NetConfig.windowsIP ); } if( VMs[i].getOs().equals("linux") ) { NetConfig.linuxIP = IPUtil.intToString(VMs[i].getIp()); System.out.println("NetConfig.linuxIP : " + NetConfig.linuxIP ); } } return length; } public int serialize(byte[] buf, int offset) { int length = super.serialize(buf, offset); if( ( null != VMs ) || ( 0 != VMs.length) ) { length += Serializer.serialize(buf, offset + length, VMs.length); for(int i = 0 ; i < VMs.length ; i++) { length += VMs[i].serialize(buf, offset + length); } } else { length += Serializer.serialize(buf, offset + length, 0); } return length; } public int length() { int length = super.length(); length += 4; if(VMs != null) { for( int i = 0 ; i < VMs.length ; i++) { length += VMs[i].length(); } } return length; } }