src/proto2/NetworkSocket.hh
branchno-netsession
changeset 38 4189b8bf3a5b
parent 31 d0d7489d4e8b
--- a/src/proto2/NetworkSocket.hh	Thu Nov 20 20:27:12 2008 +0000
+++ b/src/proto2/NetworkSocket.hh	Thu Nov 20 22:10:28 2008 +0000
@@ -1,9 +1,31 @@
 #ifndef NETWORK_SOCKET_HH
 #define NETWORK_SOCKET_HH
 
+#include "Error.hh"
+
 #include <ClanLib/Network/Socket/socket.h>
 #include <cerrno>
 
 typedef CL_Socket NetworkSocket;
 
+// Network.cc
+class NetworkSocketError : public Error {
+    protected:
+        std::string build_str (const NetworkSocket &socket, const char *op, const char *err);
+
+        NetworkSocketError (const NetworkSocket &socket, const char *op, const char *err);
+};
+
+class NetworkSocketOSError : public NetworkSocketError {
+    public:
+        NetworkSocketOSError (const NetworkSocket &socket, const char *op) :
+            NetworkSocketError(socket, op, strerror(errno)) { }
+};
+
+class NetworkSocketEOFError : public NetworkSocketError {
+    public:
+        NetworkSocketEOFError (const NetworkSocket &socket, const char *op) :
+            NetworkSocketError(socket, op, "EOF") { }
+};
+
 #endif /* NETWORK_SOCKET_HH */