Mesen-SX/Core/GameConnection.h
NovaSquirrel c0e249e993 Revert "Merge branch 'reformat_code'"
This reverts commit daf3b57e89, reversing
changes made to 7a6e0b7d77.
2021-03-10 11:13:28 -05:00

48 lines
No EOL
939 B
C++

#pragma once
#include "stdafx.h"
#include "../Utilities/SimpleLock.h"
class Socket;
class NetMessage;
class Console;
struct PlayerInfo
{
string Name;
uint8_t ControllerPort;
bool IsHost;
};
class GameConnection
{
protected:
static constexpr int MaxMsgLength = 1500000;
shared_ptr<Socket> _socket;
shared_ptr<Console> _console;
uint8_t _readBuffer[GameConnection::MaxMsgLength] = {};
uint8_t _messageBuffer[GameConnection::MaxMsgLength] = {};
int _readPosition = 0;
SimpleLock _socketLock;
private:
void ReadSocket();
bool ExtractMessage(void *buffer, uint32_t &messageLength);
NetMessage* ReadMessage();
virtual void ProcessMessage(NetMessage* message) = 0;
protected:
void Disconnect();
public:
static constexpr uint8_t SpectatorPort = 0xFF;
GameConnection(shared_ptr<Console> console, shared_ptr<Socket> socket);
bool ConnectionError();
void ProcessMessages();
void SendNetMessage(NetMessage &message);
};