Polyphase Game Engine
Loading...
Searching...
No Matches
NetPlatformSteam.h
Go to the documentation of this file.
1#pragma once
2
4
5#if NET_PLATFORM_STEAM
6
7#include "steam_api.h"
8#include "isteamuserstats.h"
9#include "isteamremotestorage.h"
10#include "isteammatchmaking.h"
11#include "steam_gameserver.h"
12
13class NetPlatformSteam : public NetPlatform
14{
15public:
16
17 // Init/Shutdown
18 virtual bool Create() override;
19 virtual void Destroy() override;
20 virtual void Update() override;
21
22 // Login
23 virtual void Login() override;
24 virtual void Logout() override;
25 virtual bool IsLoggedIn() const override;
26
27 // Matchmaking
28 virtual void OpenSession(const NetSessionOpenOptions& options) override;
29 virtual void CloseSession() override;
30 virtual void JoinSession(const NetSession& session) override;
31
32 virtual void BeginSessionSearch() override;
33 virtual void EndSessionSearch() override;
34 virtual void UpdateSearch() override;
35 virtual bool IsSearching() const override;
36
37 // Messaging
38 virtual void SendMessage(const NetHost& host, const char* buffer, uint32_t size) override;
39 virtual int32_t RecvMessage(char* recvBuffer, int32_t bufferSize, NetHost& outHost) override;
40
41protected:
42
43 void OnLobbyCreated(LobbyCreated_t* pCallback, bool bIOFailure);
44 CCallResult<NetPlatformSteam, LobbyCreated_t> mLobbyCreateCb;
45
46 void OnLobbyEntered(LobbyEnter_t* pCallback, bool bIOFailure);
47 CCallResult<NetPlatformSteam, LobbyEnter_t> mLobbyEnterCb;
48
49 void OnLobbyList(LobbyMatchList_t* pCallback, bool bIOFailure);
50 CCallResult<NetPlatformSteam, LobbyMatchList_t> mLobbyListCb;
51
52 STEAM_CALLBACK(NetPlatformSteam, OnLobbyDataUpdated, LobbyDataUpdate_t);
53 STEAM_CALLBACK(NetPlatformSteam, OnMessageRequest, SteamNetworkingMessagesSessionRequest_t);
54 STEAM_CALLBACK(NetPlatformSteam, OnLobbyJoinRequested, GameLobbyJoinRequested_t);
55
56 CSteamID mLobbyId;
57 bool mSearchingForLobbies = false;
58 NetSessionOpenOptions mSessionOptions;
59};
60
61#else
62
64{
65
66};
67
68#endif
Definition NetPlatformSteam.h:64
Definition NetPlatform.h:24
virtual void Destroy()
Definition NetPlatform.cpp:9
virtual void Logout()
Definition NetPlatform.cpp:25
virtual void Login()
Definition NetPlatform.cpp:20
virtual void UpdateSearch()
Definition NetPlatform.cpp:61
virtual bool IsLoggedIn() const
Definition NetPlatform.cpp:30
virtual void SendMessage(const NetHost &host, const char *buffer, uint32_t size)
Definition NetPlatform.cpp:71
virtual void CloseSession()
Definition NetPlatform.cpp:41
virtual bool IsSearching() const
Definition NetPlatform.cpp:66
virtual void Update()
Definition NetPlatform.cpp:14
virtual void OpenSession(const NetSessionOpenOptions &options)
Definition NetPlatform.cpp:36
virtual bool Create()
Definition NetPlatform.cpp:4
virtual int32_t RecvMessage(char *recvBuffer, int32_t bufferSize, NetHost &outHost)
Definition NetPlatform.cpp:76
virtual void BeginSessionSearch()
Definition NetPlatform.cpp:51
virtual void JoinSession(const NetSession &session)
Definition NetPlatform.cpp:46
virtual void EndSessionSearch()
Definition NetPlatform.cpp:56
Definition EngineTypes.h:489
Definition NetSession.h:18
Definition NetSession.h:7