#pragma once #include "Lockable.h" #include "TCPCommon.h" #include "SocketAddress.h" #include #include namespace Feather::Network { class TCPClient { public: 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); LockableVector& GetData() { return m_data; } const SocketAddress& GetAddress() const { return m_address; } private: TCPListener* m_parent; bufferevent* m_bufferEvent; LockableVector m_data; SocketAddress m_address; }; }