/// <summary> /// Decode Server Status Info PDU /// </summary> /// <param name="data">data to be parsed</param> /// <param name="decryptedUserData">decrypted user data</param> /// <param name="type">security header type</param> /// <returns>decoded Server Status Info PDU</returns> public StackPacket DecodeStatusInfoPDU( byte[] data, byte[] decryptedUserData, SecurityHeaderType type) { Server_Status_Info_Pdu pdu = new Server_Status_Info_Pdu(); // data index int dataIndex = 0; // StatusInfoPDU: commonHeader pdu.commonHeader = ParseMcsCommonHeader(data, ref dataIndex, type); // user data index int userDataIndex = 0; // StatusInfoPDU: shareDataHeader pdu.shareDataHeader = ParseTsShareDataHeader(decryptedUserData, ref userDataIndex); // StatusInfoPDU: statusCode pdu.statusCode = (StatusCode_Values)ParseUInt32(decryptedUserData, ref userDataIndex, false); // Check if data length exceeded expectation VerifyDataLength(decryptedUserData.Length, userDataIndex, ConstValue.ERROR_MESSAGE_DATA_LENGTH_EXCEEDED); return pdu; }
public override StackPacket Clone() { Server_Status_Info_Pdu cloneStatusInfoPdu = new Server_Status_Info_Pdu(); cloneStatusInfoPdu.commonHeader = commonHeader.Clone(); cloneStatusInfoPdu.shareDataHeader = shareDataHeader; cloneStatusInfoPdu.statusCode = statusCode; return cloneStatusInfoPdu; }