#ifndef _HEADER_MATCHMAKING #define _HEADER_MATCHMAKING #include using std::wstring; typedef unsigned long long NetID; typedef signed int ChannelID; enum class ConnectionState { Invalid = -1, Disconnected = 0, Connecting = 1, Connected = 2, }; class MatchMakingImpl; class IMatchMakingInterface { protected: IMatchMakingInterface(NetID netId); public: virtual ~IMatchMakingInterface(); void Tick(); ConnectionState GetState() const; bool IsConnected() const; bool HostMatch(ChannelID channel); bool DestroyMatch(); virtual void OnConnect() = 0; virtual void OnDisconnect() = 0; virtual void OnForceJoinSession(NetID netId, ChannelID channelID) = 0; private: MatchMakingImpl* m_impl; IMatchMakingInterface(const IMatchMakingInterface& other) = delete; IMatchMakingInterface& operator=(const IMatchMakingInterface& other) = delete; }; #endif