#pragma once #include "Lockable.h" #include #include #include namespace Feather::Network { class TCPSocket; class TCPListenerClient; class IListenerInterface; class TCPClient { public: TCPClient(std::unique_ptr&& client); TCPClient(TCPClient&& client); ~TCPClient(); LockableVector& GetData(); void Write(const uint8_t* data, size_t size); private: std::unique_ptr m_client; }; class TCPListener { public: TCPListener(uint16_t port, IListenerInterface* callbacks); ~TCPListener(); private: IListenerInterface* m_callbacks; std::unique_ptr m_socket; }; }