diff options
Diffstat (limited to 'utils/vmpi/vmpi_job_watch/JobWatchDlg.h')
| -rw-r--r-- | utils/vmpi/vmpi_job_watch/JobWatchDlg.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/utils/vmpi/vmpi_job_watch/JobWatchDlg.h b/utils/vmpi/vmpi_job_watch/JobWatchDlg.h new file mode 100644 index 0000000..6bec50b --- /dev/null +++ b/utils/vmpi/vmpi_job_watch/JobWatchDlg.h @@ -0,0 +1,134 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +// +//=============================================================================// +#if !defined(AFX_JOBWATCHDLG_H__761BDEEF_D549_4F10_817C_1C1FAF9FCA47__INCLUDED_) +#define AFX_JOBWATCHDLG_H__761BDEEF_D549_4F10_817C_1C1FAF9FCA47__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// JobWatchDlg.h : header file +// + + +#include "idle_dialog.h" +#include "resource.h" +#include "utlvector.h" +#include "imysqlwrapper.h" +#include "GraphControl.h" +#include "window_anchor_mgr.h" +#include "mysql_async.h" + + +class CWorkerInfo +{ +public: + CWorkerInfo() + { + m_bConnected = false; + m_nWorkUnitsDone = 0; + m_JobWorkerID = 0xFFFFFFFF; + m_RunningTimeMS = 0; + m_ThreadWUs[0] = m_ThreadWUs[1] = m_ThreadWUs[2] = m_ThreadWUs[3] = -1; + } + + CString m_ComputerName; + int m_bConnected; + int m_nWorkUnitsDone; + unsigned long m_JobWorkerID; + unsigned long m_RunningTimeMS; + CString m_CurrentStage; + int m_ThreadWUs[4]; +}; + + + +///////////////////////////////////////////////////////////////////////////// +// CJobWatchDlg dialog + +class CJobWatchDlg : public CIdleDialog +{ +// Construction +public: + CJobWatchDlg( CWnd* pParent = NULL); // standard constructor + virtual ~CJobWatchDlg(); + +// Dialog Data + //{{AFX_DATA(CJobWatchDlg) + enum { IDD = IDD_JOB_WATCH }; + CListCtrl m_Workers; + CEdit m_TextOutput; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CJobWatchDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); + //}}AFX_VIRTUAL + +// Implementation +protected: + + virtual void OnIdle(); + void RefreshWorkerStats(); + CWorkerInfo* FindWorkerByID( unsigned long jobWorkerID ); + CWorkerInfo* FindWorkerByMachineName( const char *pMachineName ); + void SetWorkerListItemInt( int nIndex, int iColumn, int value ); + void UpdateWorkersList(); + void ResortItems(); + + // Query IDs. + enum + { + QUERY_TEXT=0, + QUERY_GRAPH, + QUERY_WORKER_STATS, + NUM_QUERIES + }; + + void ProcessQueryResults_Graph( IMySQLRowSet *pSet ); + void ProcessQueryResults_Text( IMySQLRowSet *pSet ); + void ProcessQueryResults_WorkerStats( IMySQLRowSet *pSet ); + + bool m_bQueriesInProgress[NUM_QUERIES]; + + // This is our connection to the mysql database. + IMySQLAsync *m_pSQL; + CSysModule *m_hMySQLDLL; + + CWindowAnchorMgr m_AnchorMgr; + + + bool GetCurJobWorkerID( unsigned long &id ); + + CGraphControl m_GraphControl; + unsigned long m_JobID; + int m_CurGraphTime; + + int m_CurMessageIndex; + int m_CurWorkerTextToken; // used to let it ignore old text in the thread's queue + + DWORD m_LastQueryTime; // Last time we made a query. + + // Generated message map functions + //{{AFX_MSG(CJobWatchDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnSelChangeWorkers(); + afx_msg void OnSize(UINT nType, int cx, int cy); + afx_msg void OnOdstatechangedWorkers(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnItemchangedWorkers(NMHDR* pNMHDR, LRESULT* pResult); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_JOBWATCHDLG_H__761BDEEF_D549_4F10_817C_1C1FAF9FCA47__INCLUDED_) |