#ifndef _BASESOCKET_
#define _BASESOCKET_

#include "sys/sys"
#include "config/config"

class Basesocket {
public:
    Basesocket();
    Basesocket(int fd);
    ~Basesocket();

    int fd();
    void fd(int f);

    void bind(string const &addr, int port);
    bool operator==(Basesocket const &other) const;
    void close();
    Basesocket *accept();
    struct sockaddr_in clientaddr();

private:
    int _fd;
    int _initialized;
    struct sockaddr_in _clientaddr;
};

#endif
