Пример #1
0
        static void RunForm(string logFilename)
        {
            StatoscopeForm ssForm = new StatoscopeForm(logFilename);

            WCF.CreateServiceHost(ssForm);
            Application.Run(ssForm);
        }
Пример #2
0
 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();
        }
Пример #4
0
        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();
        }
Пример #5
0
        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();
        }
Пример #6
0
        //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
        }
Пример #7
0
 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);
        }