diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/vmpi/vmpi_services_watch/ServicesDlg.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'utils/vmpi/vmpi_services_watch/ServicesDlg.h')
| -rw-r--r-- | utils/vmpi/vmpi_services_watch/ServicesDlg.h | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/utils/vmpi/vmpi_services_watch/ServicesDlg.h b/utils/vmpi/vmpi_services_watch/ServicesDlg.h new file mode 100644 index 0000000..8ff35e3 --- /dev/null +++ b/utils/vmpi/vmpi_services_watch/ServicesDlg.h @@ -0,0 +1,150 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +// +//=============================================================================// +#if !defined(AFX_SERVICESDLG_H__FD755233_0A7A_4CBB_BA5E_A5D0B3B5F830__INCLUDED_) +#define AFX_SERVICESDLG_H__FD755233_0A7A_4CBB_BA5E_A5D0B3B5F830__INCLUDED_ + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 +// ServicesDlg.h : header file +// + +#include "iphelpers.h" +#include "idle_dialog.h" +#include "utllinkedlist.h" +#include "resource.h" +#include "window_anchor_mgr.h" +#include "net_view_thread.h" +#include "vmpi_defs.h" + + +class CServiceInfo +{ +public: + + bool IsOff() const; // Returns true if the time since we've heard from this guy is too long. + + +public: + + CString m_ComputerName; + CString m_MasterName; + CString m_Password; + int m_iState; + + // Since the live time is always changing, we only update it every 10 seconds or so. + DWORD m_LiveTimeMS; // How long the service has been running (in milliseconds). + + DWORD m_WorkerAppTimeMS; // How long the worker app has been running (0 if it's not running). + + DWORD m_LastPingTimeMS; // Last time we heard from this machine. Used to detect if the service + // is off or not. + + // Used to detect if we need to re-sort the list. + const char *m_pLastStatusText; + DWORD m_LastLiveTimeMS; + CString m_LastMasterName; + + int m_CPUPercentage; + CString m_ExeName; + CString m_MapName; + int m_MemUsageMB; + + // Last time we updated the service in the listbox.. used to make sure we update its on/off status + // every once in a while. + DWORD m_LastUpdateTime; + + int m_ProtocolVersion; // i.e. the service's VMPI_SERVICE_PROTOCOL_VERSION. + char m_ServiceVersion[32]; // Version string. + + CIPAddr m_Addr; +}; + + + +///////////////////////////////////////////////////////////////////////////// +// CServicesDlg dialog + +class CServicesDlg : public CIdleDialog +{ +// Construction +public: + CServicesDlg(CWnd* pParent = NULL); // standard constructor + +// Dialog Data + //{{AFX_DATA(CServicesDlg) + enum { IDD = IDD_SERVICES }; + CStatic m_NumServicesControl; + CStatic m_NumDisabledServicesControl; + CStatic m_NumWorkingServicesControl; + CStatic m_NumWaitingServicesControl; + CStatic m_NumOffServicesControl; + CStatic m_PasswordDisplay; + CListCtrl m_ServicesList; + //}}AFX_DATA + + +// Overrides + // ClassWizard generated virtual function overrides + //{{AFX_VIRTUAL(CServicesDlg) + protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult); + //}}AFX_VIRTUAL + +// Implementation +protected: + void BuildVMPIPingPacket( CUtlVector<char> &out, char cPacketID, unsigned char cProtocolVersion=VMPI_PROTOCOL_VERSION, bool bIgnorePassword=false ); + + virtual void OnIdle(); + + + CServiceInfo* FindServiceByComputerName( const char *pComputerName ); + void SendToSelectedServices( const char *pData, int len ); + void UpdateServiceInListbox( CServiceInfo *pInfo ); + void UpdateServiceCountDisplay(); + void ResortItems(); + + void UpdateServicesFromNetMessages(); + void UpdateServicesFromNetView(); + void BuildClipboardText( CUtlVector<char> &clipboardText ); + + + ISocket *m_pServicesPingSocket; + DWORD m_dwLastServicesPing; // Last time we pinged all the services. + + // Restricts the password so we only see a particular set of VMPI services. + CString m_Password; + + CUtlLinkedList<CServiceInfo*, int> m_Services; + CNetViewThread m_NetViewThread; + + + CWindowAnchorMgr m_AnchorMgr; + + bool m_bListChanged; // Used to detect if we need to re-sort the list. + + // Generated message map functions + //{{AFX_MSG(CServicesDlg) + virtual BOOL OnInitDialog(); + afx_msg void OnPatchServices(); + afx_msg void OnStopServices(); + afx_msg void OnStopJobs(); + afx_msg void OnFilterByPassword(); + afx_msg void OnForcePassword(); + afx_msg void OnCopyToClipboard(); + afx_msg void OnDblclkServicesList(NMHDR* pNMHDR, LRESULT* pResult); + afx_msg void OnSize(UINT nType, int cx, int cy); + //}}AFX_MSG + DECLARE_MESSAGE_MAP() +}; + +//{{AFX_INSERT_LOCATION}} +// Microsoft Visual C++ will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_SERVICESDLG_H__FD755233_0A7A_4CBB_BA5E_A5D0B3B5F830__INCLUDED_) |