1 #ifndef MSP_NET_SOCKET_H_
2 #define MSP_NET_SOCKET_H_
4 #include <msp/io/base.h>
12 class Socket: public IO::Base
23 Socket(SocketHandle, const SockAddr &);
24 Socket(Family, int, int);
29 IO::Handle get_event_handle();
31 bool is_connected() const { return connected; }
32 void bind(const SockAddr &);
33 virtual int connect(const SockAddr &) =0;
35 void set_timeout(const Time::TimeDelta &);
36 const SockAddr &get_local_address() const;
37 const SockAddr &get_peer_address() const;
39 void check_state(bool) const;
40 int set_option(int, int, const void *, socklen_t);
41 int get_option(int, int, void *, socklen_t *) const;
42 unsigned do_write(const char *, unsigned);
43 unsigned do_read(char *, unsigned);