57 lines
1.2 KiB
C++
57 lines
1.2 KiB
C++
#ifndef _ISERVERMANAGER_H_
|
|
#define _ISERVERMANAGER_H_
|
|
|
|
class IServer;
|
|
class IServerManager;
|
|
|
|
#include "imatchsystem.h"
|
|
|
|
abstract_class IMatchServer
|
|
{
|
|
public:
|
|
//
|
|
// GetOnlineId
|
|
// returns server online id to store as reference
|
|
//
|
|
virtual XUID GetOnlineId() = 0;
|
|
|
|
//
|
|
// GetGameDetails
|
|
// returns server game details
|
|
//
|
|
virtual KeyValues *GetGameDetails() = 0;
|
|
|
|
//
|
|
// IsJoinable and Join
|
|
// returns whether server is joinable and initiates join to the server
|
|
//
|
|
virtual bool IsJoinable() = 0;
|
|
virtual void Join() = 0;
|
|
};
|
|
|
|
abstract_class IServerManager
|
|
{
|
|
public:
|
|
//
|
|
// EnableServersUpdate
|
|
// controls whether server data is being updated in the background
|
|
//
|
|
virtual void EnableServersUpdate( bool bEnable ) = 0;
|
|
|
|
//
|
|
// GetNumServers
|
|
// returns number of servers discovered and for which data is available
|
|
//
|
|
virtual int GetNumServers() = 0;
|
|
|
|
//
|
|
// GetServerByIndex / GetServerByOnlineId
|
|
// returns server interface to the given server or NULL if server not found or not available
|
|
//
|
|
virtual IMatchServer* GetServerByIndex( int iServerIdx ) = 0;
|
|
virtual IMatchServer* GetServerByOnlineId( XUID xuidServerOnline ) = 0;
|
|
};
|
|
|
|
|
|
#endif // _ISERVERMANAGER_H_
|