X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fsocket.h;h=6eb29066e03d078a469f897c79c99f35a19ebcbe;hb=e2f4514a4530e0b5c4eb270bab970ab9391b5085;hp=5536146544c3de098993d1af06295caeecd075be;hpb=65b029e8334d4dfc9a6161fc04740b03d56a8e2f;p=libs%2Fnet.git diff --git a/source/socket.h b/source/socket.h index 5536146..6eb2906 100644 --- a/source/socket.h +++ b/source/socket.h @@ -10,6 +10,14 @@ namespace Msp { namespace Net { +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: @@ -37,14 +45,10 @@ public: type. */ virtual int connect(const SockAddr &) = 0; - /// Closes the socket. Most operations will throw an exception after this. - 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 set_option(int, int, const void *, socklen_t); int get_option(int, int, void *, socklen_t *) const; unsigned do_write(const char *, unsigned);