FeatherMC/src/network/TCPClient.h

36 lines
758 B
C
Raw Normal View History

#pragma once
#include "Lockable.h"
#include "TCPCommon.h"
2020-08-02 00:35:54 +01:00
#include "SocketAddress.h"
#include <cstdint>
#include <vector>
namespace Feather::Network
{
class TCPClient
{
public:
2020-08-02 00:35:54 +01:00
TCPClient(TCPListener* parent, SocketHandle socket, SocketAddress&& addr);
~TCPClient();
void ReadCallback();
void WriteCallback();
void EventCallback(int16_t event);
void Write(const uint8_t* data, size_t size);
2020-08-02 00:35:54 +01:00
LockableVector<uint8_t>& GetData() { return m_data; }
const SocketAddress& GetAddress() const { return m_address; }
private:
TCPListener* m_parent;
bufferevent* m_bufferEvent;
LockableVector<uint8_t> m_data;
2020-08-02 00:35:54 +01:00
SocketAddress m_address;
};
}