#ifndef SOCKET_H
#define SOCKET_H

class Socket final {
public:
    Socket();
    ~Socket();
    Socket(const Socket& other) = delete;
    Socket(Socket&& other) = delete;
    Socket& operator=(const Socket& other) = delete;
    Socket& operator=(Socket&& other) = delete;
    
    bool start(uint16_t port);
    int waitForClients(int timeoutMillis) const;
    bool readConsole(char* buffer, size_t bufferLength, int timeoutMillis) const;
    
private:
    int id;
};

#endif