public ICSharpCode.SharpDevelop.Gui.IViewContent CreateContentForFile(OpenedFile file)
        {
            ProfilingDataSQLiteProvider provider;

            try {
                provider = ProfilingDataSQLiteProvider.FromFile(file.FileName);
            } catch (IncompatibleDatabaseException e) {
                if (e.ActualVersion == new Version(1, 0))
                {
                    if (MessageService.AskQuestion("Upgrade DB?"))
                    {
                        using (AsynchronousWaitDialog.ShowWaitDialog("Upgrading database...")) {
                            provider = ProfilingDataSQLiteProvider.UpgradeFromOldVersion(file.FileName);
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    MessageService.ShowErrorFormatted("${res:AddIns.Profiler.DatabaseTooNewError}", e.ActualVersion.ToString(), e.ExpectedVersion.ToString());
                    return(null);
                }
            }
            return(new WpfViewer(file, provider));
        }
示例#2
0
        public void FixtureSetUp()
        {
            if (File.Exists(databaseFileName))
            {
                File.Delete(databaseFileName);
            }
            NameMapping method0 = new NameMapping(0, "r0", "m0", new List <string>());
            NameMapping method1 = new NameMapping(1, "r1", "m1", new List <string>());
            NameMapping method2 = new NameMapping(2, "r2", "m2", new List <string>());

            using (var writer = new ProfilingDataSQLiteWriter(databaseFileName)) {
                writer.ProcessorFrequency = 2000;                 // MHz
                writer.WriteMappings(new[] { method0, method1, method2 });
                CallTreeNodeStub dataSet;
                dataSet = new CallTreeNodeStub {
                    NameMappingValue = method0,
                    AddChildren      =
                    {
                        new CallTreeNodeStub {
                            NameMappingValue    = method1,
                            RawCallCountValue   = 10,
                            CpuCyclesSpentValue = 500 * k
                        }
                    }
                };
                writer.WriteDataSet(new DataSetStub {
                    IsFirst = true, RootNode = dataSet
                });
                dataSet = new CallTreeNodeStub {
                    NameMappingValue     = method0,
                    IsActiveAtStartValue = true,
                    AddChildren          =
                    {
                        new CallTreeNodeStub {
                            NameMappingValue     = method1,
                            RawCallCountValue    = 0,
                            IsActiveAtStartValue = true,
                            CpuCyclesSpentValue  = 200 * k
                        },
                        new CallTreeNodeStub {
                            NameMappingValue    = method2,
                            RawCallCountValue   = 1,
                            CpuCyclesSpentValue = 300 * k
                        }
                    }
                };
                writer.WriteDataSet(new DataSetStub {
                    IsFirst = false, RootNode = dataSet
                });
                dataSet = new CallTreeNodeStub {
                    NameMappingValue     = method0,
                    IsActiveAtStartValue = true,
                    AddChildren          =
                    {
                        new CallTreeNodeStub         {
                            NameMappingValue     = method2,
                            RawCallCountValue    = 0,
                            IsActiveAtStartValue = true,
                            CpuCyclesSpentValue  = 50 * k,
                            AddChildren          =
                            {
                                new CallTreeNodeStub {
                                    NameMappingValue    = method1,
                                    RawCallCountValue   = 5,
                                    CpuCyclesSpentValue = 1 * k
                                }
                            }
                        }
                    }
                };
                writer.WriteDataSet(new DataSetStub {
                    IsFirst = false, RootNode = dataSet
                });
                writer.Close();
            }
            provider = ProfilingDataSQLiteProvider.UpgradeFromOldVersion(databaseFileName);
        }