00001 /* 00002 * $Id: SocketExceptions.h 566 2007-12-02 08:20:52Z mindstorm2600 $ 00003 * 00004 * X-VR2 00005 * 00006 * Copyright (C) Juan V. Guerrero 2007 00007 * 00008 * Juan V. Guerrero <mindstorm2600@users.sourceforge.net> 00009 * 00010 * This program is free software, distributed under the terms of 00011 * the GNU General Public License Version 2. See the LICENSE file 00012 * at the top of the source tree. 00013 */ 00014 #ifndef __XVR2_NET_SOCKET_EXCEPTIONS_H__ 00015 #define __XVR2_NET_SOCKET_EXCEPTIONS_H__ 00016 #include<xvr2/CoreExceptions.h> 00017 #include<xvr2/String.h> 00018 #include<xvr2/Net/NetworkExceptions.h> 00019 00020 namespace xvr2 { 00021 namespace Net { 00022 00025 class SocketException:public NetworkException { 00026 public: 00028 SocketException(); 00029 SocketException(OSErrorCodeT error_code); 00030 }; 00031 00034 class SocketOptionException:public SocketException { 00035 public: 00041 SocketOptionException(); 00044 SocketOptionException(OSErrorCodeT x_errno); 00045 }; 00046 00053 class SocketOptionParamFailure:public SocketOptionException { 00054 protected: 00055 int _optname; 00056 public: 00058 SocketOptionParamFailure(); 00060 SocketOptionParamFailure(OSErrorCodeT x_errno); 00065 SocketOptionParamFailure(OSErrorCodeT x_errno, int __optname); 00066 int optionNameVal(); 00067 String optionName(); 00068 }; 00069 00076 class SocketOptionIsInvalid:public SocketOptionParamFailure { 00077 public: 00079 SocketOptionIsInvalid(); 00084 SocketOptionIsInvalid(OSErrorCodeT x_errno, int __optname); 00085 }; 00086 00090 class InvalidSocket:public SocketException { 00091 private: 00092 int _socket; 00093 public: 00094 InvalidSocket(); 00095 InvalidSocket(int _fd); 00096 int socketID(); 00097 00098 }; 00099 }; 00100 }; 00101 00102 #endif 00103