You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.1 KiB
74 lines
2.1 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//============================================================================= |
|
|
|
#ifndef BLACKLISTEDSERVERMANAGER_H |
|
#define BLACKLISTEDSERVERMANAGER_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "platform.h" |
|
#include "netadr.h" |
|
#include "utlvector.h" |
|
|
|
#define BLACKLIST_DEFAULT_SAVE_FILE "cfg/server_blacklist.txt" |
|
|
|
class gameserveritem_t; |
|
|
|
struct blacklisted_server_t |
|
{ |
|
int m_nServerID; |
|
char m_szServerName[64]; |
|
uint32 m_ulTimeBlacklistedAt; |
|
netadr_t m_NetAdr; |
|
}; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Collection of blacklisted servers |
|
//----------------------------------------------------------------------------- |
|
class CBlacklistedServerManager |
|
{ |
|
public: |
|
CBlacklistedServerManager(); |
|
|
|
void Reset( void ); |
|
|
|
blacklisted_server_t *AddServer( gameserveritem_t &server ); |
|
blacklisted_server_t *AddServer( const char *serverName, uint32 serverIP, int serverPort ); |
|
blacklisted_server_t *AddServer( const char *serverName, const char *netAddressString, uint32 timestamp ); |
|
|
|
void RemoveServer( int iServerID ); // remove server with matching 'server id' from list |
|
|
|
void SaveToFile( const char *filename ); |
|
int LoadServersFromFile( const char *pszFilename, bool bResetTimes ); // returns count of appended servers, zero for failure |
|
|
|
blacklisted_server_t *GetServer( int iServerID ); // return server with matching 'server id' |
|
int GetServerCount( void ) const; |
|
|
|
const CUtlVector< blacklisted_server_t > &GetServerVector( void ) const; |
|
|
|
bool IsServerBlacklisted( const gameserveritem_t &server ) const; |
|
bool IsServerBlacklisted( uint32 serverIP, int serverPort, const char *serverName ) const; |
|
|
|
bool CanServerBeBlacklisted( gameserveritem_t &server ) const; |
|
bool CanServerBeBlacklisted( uint32 serverIP, int serverPort, const char *serverName ) const; |
|
|
|
private: |
|
CUtlVector< blacklisted_server_t > m_Blacklist; |
|
int m_iNextServerID; // for vgui use |
|
}; |
|
|
|
inline int CBlacklistedServerManager::GetServerCount( void ) const |
|
{ |
|
return m_Blacklist.Count(); |
|
} |
|
|
|
|
|
|
|
|
|
#endif // BLACKLISTEDSERVERMANAGER_H
|
|
|