00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CONEXUSCLOSE_ERROR_H
00020 #define CONEXUSCLOSE_ERROR_H
00021
00022 #include <conexus/error.h>
00023
00024 namespace Conexus {
00025
00031 class close_error: public conexus_error {
00032 public:
00033 close_error(int e=0): conexus_error("Unknown error, socket cannot be closed.",e,"close") { }
00034 close_error(const std::string s, int e=0): conexus_error(s,e,"close") { }
00035 }
00036 ;
00037
00038 namespace error {
00039
00040
00041 namespace close {
00042
00049 class bad_fd: public close_error {
00050 public:
00051 bad_fd(): close_error("fd isn’t a valid open file descriptor.", EBADF) { }
00052 }
00053 ;
00054
00061 class interrupted: public close_error {
00062 public:
00063 interrupted(): close_error("The close() call was interrupted by a signal.", EINTR) {}
00064 }
00065 ;
00066
00073 class io: public close_error {
00074 public:
00075 io(): close_error("An I/O error occurred.", EIO) { }
00076 }
00077 ;
00078
00079 }
00080 }
00081 }
00082 #endif