sqwarmed/sdk_src/public/matchmaking/imatchnetworkmsg.h

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