/// <summary> /// Parse TS_DEACTIVATE_ALL_PDU /// (parser index is updated according to parsed length) /// </summary> /// <param name="data">data to be parsed</param> /// <param name="currentIndex">current parser index</param> /// <returns>TS_DEACTIVATE_ALL_PDU</returns> private TS_DEACTIVATE_ALL_PDU ParseTsDeactivateAllPdu(byte[] data, ref int currentIndex) { TS_DEACTIVATE_ALL_PDU pdu = new TS_DEACTIVATE_ALL_PDU(); // TS_DEACTIVATE_ALL_PDU: shareControlHeader pdu.shareControlHeader = ParseTsShareControlHeader(data, ref currentIndex); // TS_DEACTIVATE_ALL_PDU: shareId pdu.shareId = ParseUInt32(data, ref currentIndex, false); // TS_DEACTIVATE_ALL_PDU: lengthSourceDescriptor pdu.lengthSourceDescriptor = ParseUInt16(data, ref currentIndex, false); // TS_DEACTIVATE_ALL_PDU: sourceDescriptor pdu.sourceDescriptor = GetBytes(data, ref currentIndex, (int)pdu.lengthSourceDescriptor); return pdu; }
private byte[] EncodeDeactivateAllData(TS_DEACTIVATE_ALL_PDU deactivateAllPduData) { List<byte> dataBuffer = new List<byte>(); RdpbcgrEncoder.EncodeStructure(dataBuffer, deactivateAllPduData.shareControlHeader); RdpbcgrEncoder.EncodeStructure(dataBuffer, deactivateAllPduData.shareId); RdpbcgrEncoder.EncodeStructure(dataBuffer, deactivateAllPduData.lengthSourceDescriptor); RdpbcgrEncoder.EncodeBytes(dataBuffer, deactivateAllPduData.sourceDescriptor); return dataBuffer.ToArray(); }