class Socket: public IO::Base
{
-public:
- void set_block(bool);
- IO::Handle get_event_handle();
-
- bool get_connected() const { return connected; }
- void bind(const SockAddr &);
- virtual int connect(const SockAddr &) =0;
- void close();
- const SockAddr &get_local_address() const;
- const SockAddr &get_peer_address() const;
- ~Socket();
protected:
SocketHandle handle;
#ifdef WIN32
Socket(SocketHandle, const SockAddr &);
Socket(Family, int, int);
+public:
+ ~Socket();
+
+ void set_block(bool);
+ IO::Handle get_event_handle();
+
+ bool is_connected() const { return connected; }
+ void bind(const SockAddr &);
+ virtual int connect(const SockAddr &) =0;
+ void close();
+ void set_timeout(const Time::TimeDelta &);
+ const SockAddr &get_local_address() const;
+ const SockAddr &get_peer_address() const;
+protected:
void check_state(bool) const;
- int get_option(int, int, void *, socklen_t *);
+ int set_option(int, int, const void *, socklen_t);
+ int get_option(int, int, void *, socklen_t *) const;
unsigned do_write(const char *, unsigned);
unsigned do_read(char *, unsigned);
};