- void check_state(bool) const;
- int get_option(int, int, void *, socklen_t *);
+public:
+ ~Socket();
+
+ void set_block(bool);
+ const IO::Handle &get_event_handle();
+
+ bool is_connected() const { return connected; }
+
+ /** Associates the socket with a local address. There must be no existing
+ users of the address. */
+ void bind(const SockAddr &);
+
+ /** Connects to a remote address. Exact semantics depend on the socket
+ type. */
+ virtual int connect(const SockAddr &) = 0;
+
+ void set_timeout(const Time::TimeDelta &);
+ const SockAddr &get_local_address() const;
+ const SockAddr &get_peer_address() const;
+protected:
+ int set_option(int, int, const void *, socklen_t);
+ int get_option(int, int, void *, socklen_t *) const;