Ejemplo n.º 1
0
        public override bool IsDataExists(ProcessedDataPackage state)
        {
            RenderDumpFilesInfo rdfi = new RenderDumpFilesInfo(state);

            if (String.IsNullOrEmpty(rdfi.GetFullPath()))
            {
                return(false);
            }

            FileInfo fi = new FileInfo(rdfi.GetFullPath());

            return(fi.Exists && fi.Length > 0);
        }
Ejemplo n.º 2
0
        private void SaveDump(string cmdId, string args)
        {
            if (this.StartInfo == null || args == null)
            {
                return;
            }


            Stream outs = new RenderDumpFilesInfo(this.StartInfo).Open(FileAccess.Write);

            if (outs != null)
            {
                StreamWriter sw = new StreamWriter(outs, Encoding.UTF8);
                sw.Write(args);
                sw.Flush();
                sw.Close();
            }
        }
Ejemplo n.º 3
0
        public override RenderData GetProcessedData(ProcessedDataPackage state)
        {
            RenderDumpFilesInfo rdfi   = new RenderDumpFilesInfo(state);
            StreamReader        source = new StreamReader(rdfi.Open(FileAccess.Read));

            RenderData renderData = new RenderData();

            if (source == null)
            {
                return(renderData);
            }

            renderData.RenderDumpFilename = rdfi.GetFilename();

            String buffer = source.ReadToEnd();

            source.Close();
            source.Dispose();

            MatchCollection matchs = render_Dump_Pattern.Matches(buffer);
            Match           match  = null;

            bool            isStart       = false;
            int             id            = 0;
            long            timestamp     = 0;
            String          type          = "";
            RenderedSegment renderedPeice = null;

            for (int i = 0; i < matchs.Count; i++)
            {
                match = matchs[i];

                if (match.Success)
                {
                    isStart   = (match.Groups[1].Value == "S");
                    id        = int.Parse(match.Groups[2].Value);
                    timestamp = long.Parse(match.Groups[5].Value);
                    type      = match.Groups[4].Value;

                    if (type == "UN")
                    {
                        renderData.ReadyStateUninitialized = timestamp;
                    }
                    else if (type == "LI")
                    {
                        renderData.ReadyStateLoading = timestamp;
                    }
                    else if (type == "LO")
                    {
                        renderData.ReadyStateLoaded = timestamp;
                    }
                    else if (type == "IN")
                    {
                        renderData.ReadyStateInteractive = timestamp;
                    }
                    else if (type == "CO")
                    {
                        renderData.ReadyStateComplete = timestamp;
                    }
                    else if (type == "OL")
                    {
                        renderData.OnLoad = timestamp;
                    }
                    else
                    {
                        if (renderData.ContainsKey(id) == false)
                        {
                            renderedPeice = new RenderedSegment(id);
                            renderData.Add(id, renderedPeice);
                        }
                        else
                        {
                            renderedPeice = renderData[id];
                        }
                        if (isStart)
                        {
                            renderedPeice.StartTime = timestamp;
                        }
                        else
                        {
                            renderedPeice.EndTime = timestamp;
                        }

                        renderedPeice.SegmentType = GetSegmentType(type);
                    }

                    if (timestamp > 0)
                    {
                        state.CollectionStartTime = Math.Min(state.CollectionStartTime, timestamp);
                    }
                    state.CollectionEndTime = Math.Max(state.CollectionEndTime, timestamp);
                }
            }
            renderData.TotalRenderTime = state.CollectionEndTime - state.CollectionStartTime;
            FixAvgMaxMin(renderData);

            return(renderData);
        }