summaryrefslogtreecommitdiff
path: root/utils/vmpi/vmpi_services_watch/ServicesDlg.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/vmpi/vmpi_services_watch/ServicesDlg.h
downloadarchived-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.h150
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_)