package org.ifsoft.rtp; import org.ifsoft.*; import java.util.ArrayList; public class RTCPBYEPacket extends RTCPPacket { private String _reasonForLeaving; private Long _synchronizationAndContributingSources[]; RTCPBYEPacket() { } protected void deserialize() { Integer startIndex = Integer.valueOf(0); ArrayList list = new ArrayList(); Byte firstByte = super.getFirstByte(); for(Integer i = Integer.valueOf(0); i.intValue() < firstByte.byteValue();) { list.add(BitAssistant.toLongFromIntegerNetwork(super.getPayload(), startIndex)); startIndex = Integer.valueOf(startIndex.intValue() + 4); Integer integer = i; Integer integer1 = i = Integer.valueOf(i.intValue() + 1); Integer _tmp = integer; } setSynchronizationAndContributingSources((Long[])list.toArray(new Long[0])); if(startIndex.intValue() < ArrayExtensions.getLength(super.getPayload()).intValue()) { Short count = BitAssistant.toShortNetwork(new Byte[] { Byte.valueOf((byte)0), super.getPayload()[startIndex.intValue()] }, Integer.valueOf(0)); setReasonForLeaving(Encoding.getUTF8().getString(super.getPayload(), startIndex.intValue() + 1, count.shortValue())); } } public RTCPBYEPacket(Long synchronizationAndContributingSources[]) throws ArgumentNullException { if(synchronizationAndContributingSources == null) { throw new ArgumentNullException("synchronizationAndContributingSources"); } else { setSynchronizationAndContributingSources(synchronizationAndContributingSources); return; } } public String getReasonForLeaving() { return _reasonForLeaving; } public Long[] getSynchronizationAndContributingSources() { return _synchronizationAndContributingSources; } protected void serialize() { super.setFirstByte(new Byte((new Integer(ArrayExtensions.getLength(getSynchronizationAndContributingSources()).intValue())).byteValue())); ArrayList list = new ArrayList(); for(Integer i = Integer.valueOf(0); i.intValue() < ArrayExtensions.getLength(getSynchronizationAndContributingSources()).intValue();) { ArrayListExtensions.addRange(list, BitAssistant.getIntegerBytesFromLongNetwork(getSynchronizationAndContributingSources()[i.intValue()])); Integer integer = i; Integer integer1 = i = Integer.valueOf(i.intValue() + 1); Integer _tmp = integer; } if(!StringExtensions.isNullOrEmpty(getReasonForLeaving()).booleanValue()) { list.add(new Byte((new Byte((new Integer(StringExtensions.getLength(getReasonForLeaving()).intValue())).byteValue())).byteValue())); Byte bytes[] = Encoding.getUTF8().getBytes(getReasonForLeaving()); ArrayListExtensions.addRange(list, bytes); for(Integer j = Integer.valueOf(1 + ArrayExtensions.getLength(bytes).intValue()); j.intValue() % 4 > 0;) { list.add(new Byte((byte)0)); Integer integer2 = j; Integer integer3 = j = Integer.valueOf(j.intValue() + 1); Integer _tmp1 = integer2; } } super.setPayload((Byte[])list.toArray(new Byte[0])); } public void setReasonForLeaving(String value) { _reasonForLeaving = value; } public void setSynchronizationAndContributingSources(Long value[]) { _synchronizationAndContributingSources = value; } }