Exemple #1
0
        } // GetDvbStpClientSegmentInfoList

        private void Deserialize()
        {
            if (Request.AvoidDeserialization)
            {
                return;
            }
            Worker.ReportProgress(999);

            foreach (var payload in Request.Payloads)
            {
                if (payload.XmlType != null)
                {
                    payload.XmlDeserializedData = UiDvbStpSimpleDownloadResponse.ParsePayload(payload.XmlType,
                                                                                              payload.Data,
                                                                                              payload.PayloadId,
                                                                                              !Request.AllowXmlExtraWhitespace,
                                                                                              Request.XmlNamespaceReplacer);
                } // if

                if (!Request.KeepRawData)
                {
                    payload.Data = null;
                } // if
            }     // foreach
        }         // Deserialize
Exemple #2
0
        } // DisplayParsingData

        #endregion

        #region BackgroundWorker DoWork

        void Worker_DoWork(object sender, DoWorkEventArgs e)
        {
            DvbStpSimpleClient stpClient;

            byte[] payload;

            InitWorker(e);

            stpClient             = new DvbStpSimpleClient(Request.MulticastAddress, Request.MulticastPort);
            CancelDownloadRequest = stpClient.CancelRequest;
            try
            {
                stpClient.ReceiveDatagramTimeout  = Request.ReceiveDatagramTimeout;
                stpClient.NoDataTimeout           = Request.NoDataTimeout;
                stpClient.SectionReceived        += StpClient_SectionReceived;
                stpClient.PayloadSectionReceived += StpClient_PayloadSectionReceived;

                payload          = stpClient.GetPayload(Request.PayloadId, Request.SegmentId);
                Response.Version = stpClient.SegmentVersion;
                e.Result         = payload;
#if DEBUG
                if ((payload != null) && (Request.DumpToFile != null))
                {
                    File.WriteAllBytes(Request.DumpToFile, payload);
                } // if
#endif
                if ((Request.PayloadDataType != null) && (payload != null))
                {
                    Worker.ReportProgress(int.MaxValue);
                    Response.DeserializedPayloadData = UiDvbStpSimpleDownloadResponse.ParsePayload(Request.PayloadDataType, payload, Request.PayloadId, !Request.AllowXmlExtraWhitespace, Request.XmlNamespaceReplacer);
                } // if
            }
            finally
            {
                e.Cancel = Worker.CancellationPending;
                stpClient.Close();
            } // finally
        }     // Worker_DoWork