thunderbrew/src/net/connection/ClientConnection.hpp

42 lines
1.3 KiB
C++

#ifndef NET_CONNECTION_CLIENT_CONNECTION_HPP
#define NET_CONNECTION_CLIENT_CONNECTION_HPP
#include "net/connection/RealmConnection.hpp"
#include "net/Types.hpp"
class RealmResponse;
class ClientConnection : public RealmConnection {
public:
// Member variables
int32_t m_connected = 0;
int32_t m_statusComplete = 1;
int32_t m_statusResult = 1;
WOWCS_OPS m_statusCop = COP_NONE;
int32_t m_errorCode = 0;
void (*m_cleanup)() = nullptr;
// Virtual member functions
virtual int32_t HandleConnect();
virtual void Complete(int32_t result, int32_t errorCode);
// Member functions
ClientConnection(RealmResponse* realmResponse)
: RealmConnection(realmResponse)
{};
void AccountLogin(const char* name, const char* password, int32_t region, int32_t locale);
void AccountLogin_Finish(int32_t authResult);
void AccountLogin_Queued();
void GetCharacterList();
void CharacterLogin(uint64_t id);
void Cancel(int32_t errorCode);
void Cleanup();
void Connect();
int32_t Disconnect();
void Initiate(WOWCS_OPS op, int32_t errorCode, void (*cleanup)());
int32_t IsConnected();
int32_t PollStatus(WOWCS_OPS& op, const char** msg, int32_t& result, int32_t& errorCode);
};
#endif