1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-01-03 16:13:22 +08:00
hl2sdk/public/matchmaking/imatchnetworkmsg.h
2010-07-22 01:46:14 -05:00

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