#pragma once

#include <Core/Networking/IPAddress.h>
#include <Core/Networking/Socket.h>
#include <Core/Networking/TcpSocket.h>

namespace Juliet
{
    class TcpListener : public Socket
    {
      public:
        TcpListener();

        TcpListener(const TcpListener&) = delete;
        TcpListener& operator=(const TcpListener&) = delete;

        Status Listen(uint16 port, uint32 address = kAnyIp);
        Status Accept(TcpSocket& socket);
        void   Close();
    };
} // namespace Juliet
