49 lines
1.3 KiB
C
49 lines
1.3 KiB
C
//===== Copyright c 1996-2009, Valve Corporation, All rights reserved. ======//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//===========================================================================//
|
|
|
|
#ifndef IMATCHNETWORKMSG_H
|
|
#define IMATCHNETWORKMSG_H
|
|
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
|
|
struct MM_QOS_t
|
|
{
|
|
int nPingMsMin; // Minimum round-trip time in ms
|
|
int nPingMsMed; // Median round-trip time in ms
|
|
float flBwUpKbs; // Bandwidth upstream in kilobytes/s
|
|
float flBwDnKbs; // Bandwidth downstream in kilobytes/s
|
|
float flLoss; // Average packet loss in percents
|
|
};
|
|
|
|
struct MM_GameDetails_QOS_t
|
|
{
|
|
void *m_pvData; // Encoded game details
|
|
int m_numDataBytes; // Length of game details
|
|
|
|
int m_nPing; // Average ping in ms
|
|
};
|
|
|
|
abstract_class IMatchNetworkMsgController
|
|
{
|
|
public:
|
|
// To determine host Quality-of-Service
|
|
virtual MM_QOS_t GetQOS() = 0;
|
|
|
|
virtual KeyValues * GetActiveServerGameDetails( KeyValues *pRequest ) = 0;
|
|
|
|
virtual KeyValues * UnpackGameDetailsFromQOS( MM_GameDetails_QOS_t const *pvQosReply ) = 0;
|
|
virtual KeyValues * UnpackGameDetailsFromSteamLobby( uint64 uiLobbyID ) = 0;
|
|
|
|
virtual void PackageGameDetailsForQOS( KeyValues *pSettings, CUtlBuffer &buf ) = 0;
|
|
|
|
virtual KeyValues * PackageGameDetailsForReservation( KeyValues *pSettings ) = 0;
|
|
};
|
|
|
|
#endif // IMATCHNETWORKMSG_H
|