+
+class bad_socket_state: public std::logic_error
+{
+public:
+ bad_socket_state(const std::string &w): std::logic_error(w) { }
+ virtual ~bad_socket_state() throw() { }
+};
+
+
+class Socket: public IO::EventObject
+{
+protected:
+ struct Private;
+
+ Private *priv;
+ SockAddr *local_addr;
+
+ Socket(const Private &);