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)); }
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); }