static void RunForm(string logFilename) { StatoscopeForm ssForm = new StatoscopeForm(logFilename); WCF.CreateServiceHost(ssForm); Application.Run(ssForm); }
public static void CreateServiceHost(StatoscopeForm ssForm) { try { s_serviceHost = new ServiceHost(new CStatoscopeRPC(ssForm), new Uri[] { new Uri(PipeAddress) }); s_serviceHost.AddServiceEndpoint(typeof(IStatoscopeRPC), new NetNamedPipeBinding(), PipeServiceName); s_serviceHost.Open(); } catch (AddressAlreadyInUseException) { } }
public SessionInfoListView(SessionInfo sessionInfo) { Session = sessionInfo; Columns.Add(LogControl.CreateColumnHeader("", 70)); Columns.Add(LogControl.CreateColumnHeader("", 90)); Columns[0].TextAlign = HorizontalAlignment.Left; View = View.Details; Dock = DockStyle.Fill; ShowItemToolTips = true; VirtualMode = true; VirtualListSize = Session.Items.GetUpperBound(0) + 1; RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(SessionInfoListView_RetrieveVirtualItem); CacheVirtualItems += new CacheVirtualItemsEventHandler(SessionInfoListView_CacheVirtualItems); StatoscopeForm.SetDoubleBuffered(this); LviCache = new List <ListViewItem>(VirtualListSize); UpdateLviCache(); }
public BucketListView(BucketSet bucketSet) { InitializeComponent(); View = View.Details; Dock = DockStyle.Fill; GridLines = true; FullRowSelect = true; VirtualMode = true; VirtualListSize = bucketSet.m_buckets.Count; RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(bucketsListView_RetrieveVirtualItem); CacheVirtualItems += new CacheVirtualItemsEventHandler(bucketsListView_CacheVirtualItems); StatoscopeForm.SetDoubleBuffered(this); int numColHeaders = CountHeaders(bucketSet); int colHeaderWidth = Math.Max(50, (Width) / numColHeaders); Columns.Add(LogControl.CreateColumnHeader("Bucket", colHeaderWidth)); CreateHeaders(bucketSet, colHeaderWidth); m_bucketSet = bucketSet; m_lviCache = new List <ListViewItem>(bucketSet.m_buckets.Count); UpdateLviCache(); }
public StatsListView(List <LogView> logViews, string path) { Columns.Add(LogControl.CreateColumnHeader("", 92)); Columns.Add(LogControl.CreateColumnHeader("#Frames", 55)); Columns.Add(LogControl.CreateColumnHeader("Min", 55)); Columns.Add(LogControl.CreateColumnHeader("Max", 55)); Columns.Add(LogControl.CreateColumnHeader("Avg", 55)); Columns[0].TextAlign = HorizontalAlignment.Left; View = View.Details; Dock = DockStyle.Fill; ShowItemToolTips = true; VirtualMode = true; VirtualListSize = logViews.Count; RetrieveVirtualItem += new RetrieveVirtualItemEventHandler(statsListView_RetrieveVirtualItem); CacheVirtualItems += new CacheVirtualItemsEventHandler(statsListView_CacheVirtualItems); StatoscopeForm.SetDoubleBuffered(this); m_logViews = logViews; m_path = path; m_lviCache = new List <ListViewItem>(logViews.Count); UpdateLviCache(); }
//bool m_nonNumberEntered; public LogControl(List <LogRange> logRanges, StatoscopeForm statoscopeForm) { m_statoscopeForm = statoscopeForm; InitializeComponent(); InitializeDisplayScales(); if (components == null) { components = new Container(); } intervalPath.Text = ""; Dock = DockStyle.Fill; m_ordiTree = new OverviewRDI(); m_prdiTree = new ProfilerRDI(); m_urdiTree = new UserMarkerRDI(); m_trdiTree = new TargetLineRDI(); m_zrdiTree = new ZoneHighlighterRDI(); m_ordiTreeView = new ORDICheckboxTreeView(this, m_ordiTree); m_prdiTreeView = new PRDICheckboxTreeView(this, m_prdiTree); m_urdiTreeView = new URDICheckboxTreeView(this, m_urdiTree); m_trdiTreeView = new TRDICheckboxTreeView(this, m_trdiTree); m_zrdiTreeView = new ZRDICheckboxTreeView(this, m_zrdiTree); InitializeItemInfoControls(); foreach (LogRange logRange in logRanges) { LogView logView = new LogView(this, logRange); components.Add(logView); m_logViews.Add(logView); } m_intervalControl = new IntervalControl(); m_intervalControl.Dock = DockStyle.Fill; m_intervalControl.Visible = false; m_intervalControl.Tree = m_logViews[0].m_logData.IntervalTree; m_intervalControl.ViewChanged += new EventHandler(m_intervalControl_ViewChanged); m_intervalControl.ActiveIntervalChanged += new EventHandler(m_intervalControl_ActiveIntervalChanged); intervalTreemapTableLayoutPanel.Controls.Add(m_intervalControl, 0, 0); m_treemapControl = new ProfilerTreemapControl(this); m_treemapControl.Dock = DockStyle.Fill; m_treemapControl.Visible = false; m_treemapControl.SelectionChanged += new EventHandler(m_treemapControl_SelectionChanged); intervalTreemapTableLayoutPanel.Controls.Add(m_treemapControl, 0, 1); m_OGLGraphingControl = new OpenGLGraphingControl(this); m_OGLGraphingControl.Dock = DockStyle.Fill; m_OGLGraphingControl.SelectionChanged += new EventHandler(m_OGLGraphingControl_SelectionChanged); m_OGLGraphingControl.SelectedHighlight += new EventHandler(m_OGLGraphingControl_SelectedHighlight); displayTableLayoutPanel.Controls.Add(m_OGLGraphingControl, 0, 1); logListTableLayoutPanel.SuspendLayout(); foreach (LogView logView in m_logViews) { if (m_logViews.Count > 1) { logView.SetSingleOrdiColour(RGB.RandomHueRGB()); } LogListItem logListItem = new LogListItem(logView); logListTableLayoutPanel.Controls.Add(logListItem); } logListTableLayoutPanel.ResumeLayout(); m_spikeFinder = new SpikeFinder(this); overviewTabPage.Controls.Add(new CTVControl(m_ordiTreeView)); functionProfileTabPage.Controls.Add(new CTVControl(m_prdiTreeView)); userMarkersTabPage.Controls.Add(new CTVControl(m_urdiTreeView)); targetLinesTabPage.Controls.Add(new CTVControl(m_trdiTreeView, new TargetLineCTVControlPanel(m_trdiTreeView))); spikeFinderTabPage.Controls.Add(m_spikeFinder); zoneHighlightersTabPage.Controls.Add(new CTVControl(m_zrdiTreeView, new ZoneHighlighterCTVControlPanel(m_zrdiTreeView))); //m_nonNumberEntered = false; InitializeTargetLines(); InitializeZoneHighlighters(); UpdateControls(0); m_OGLGraphingControl.FitViewToFrameRecords(); AutoEnableTargetLines(); //CreateSummaryTabPage(); // this will be replaced with a much better Dr Statoscope feature later }
public CStatoscopeRPC(StatoscopeForm ssForm) { m_ssForm = ssForm; }
public LogData ProcessLog(StatoscopeForm ssForm) { TcpClient client = null; bool bShouldLogToFile = false; string connectionName = ""; using (ConnectMessageBox connectMsgBox = new ConnectMessageBox()) { bool successful = false; while (!successful) { if (connectMsgBox.ShowDialog() == DialogResult.OK) { try { client = new TcpClient(connectMsgBox.IpAddress, connectMsgBox.Port); bShouldLogToFile = connectMsgBox.logToFileCheckBox.Checked; connectionName = connectMsgBox.ConnectionName; successful = true; } catch (Exception ex) { ex.ToString(); ConnectionErrorDialog ced = new ConnectionErrorDialog(); ced.errorLabel.Text += connectMsgBox.IpAddress + ":" + connectMsgBox.Port; ced.ShowDialog(); } } else { return(null); } } } string logWriteFilename = ""; if (bShouldLogToFile) { SaveFileDialog fd = new SaveFileDialog(); fd.CheckFileExists = false; fd.FileName = "log.bin"; fd.Filter = "Binary log files (*.bin)|*.bin|All files (*.*)|*.*"; fd.FilterIndex = 0; if (fd.ShowDialog() == DialogResult.OK) { logWriteFilename = fd.FileName; } } SocketSessionInfo sessionInfo = new SocketSessionInfo(connectionName, logWriteFilename); SocketLogData logData = new SocketLogData(sessionInfo); logData.ProcessRecords(); List <LogRange> logRanges = new List <LogRange>(); LogRange logRange = new LogRange(logData, null); logRanges.Add(logRange); ssForm.AddToLogRangeList(logRange); ssForm.CreateLogControlTabPage(logRanges, connectionName, null); ThreadPool.QueueUserWorkItem(new WaitCallback(ProcessSocketDataStreamCB), new SSocketParseArgs(logData, logWriteFilename, client)); return(logData); }