00001
00002
00003
00004
00005
00006
00007 #ifndef INCLUDED_ERRNO_H
00008 #define INCLUDED_ERRNO_H
00009
00010 #include <string>
00011
00012 #include "Exception.hh"
00013 #include "OS_Errno.hh"
00014
00015 using std::string;
00016
00017 namespace fatalmind {
00018
00019 class Errno : public Exception {
00020 public:
00021 Errno(const int err=0);
00022 Errno(const int err, const string& fmt);
00023 int os_errno() const throw();
00024 virtual ~Errno();
00025
00026 static void ThrowOnError(int err=0);
00027 static void Throw(int err=0);
00028 static void Throw(const string &fmt);
00029 virtual const std::string message() const throw();
00030
00031 private:
00032 const int _errno;
00033
00034
00035 public:
00036
00037
00038
00039 class E2BIG;
00040 class EACCES;
00041 class EAGAIN;
00042 class EBADF;
00043 class EBUSY;
00044 class ECHILD;
00045 class EDEADLK;
00046 class EDOM;
00047 class EEXIST;
00048 class EFAULT;
00049 class EFBIG;
00050 class EINTR;
00051 class EINVAL;
00052 class EIO;
00053 class EISDIR;
00054 class EMFILE;
00055 class EMLINK;
00056 class ENAMETOOLONG;
00057 class ENFILE;
00058 class ENODEV;
00059 class ENOENT;
00060 class ENOEXEC;
00061 class ENOLCK;
00062 class ENOMEM;
00063 class ENOSPC;
00064 class ENOSYS;
00065 class ENOTDIR;
00066 class ENOTEMPTY;
00067 class ENOTTY;
00068 class ENXIO;
00069 class EPERM;
00070 class EPIPE;
00071 class ERANGE;
00072 class EROFS;
00073 class ESPIPE;
00074 class ESRCH;
00075 class EXDEV;
00076
00077
00078 class ETIMEDOUT;
00079 };
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 class Errno::E2BIG: public Errno {
00092 public:
00093 E2BIG();
00094 E2BIG(const string &);
00095 virtual ~E2BIG();
00096 };
00097
00098 class Errno::EACCES: public Errno {
00099 public:
00100 EACCES();
00101 EACCES(const string &);
00102 virtual ~EACCES();
00103 };
00104
00105 class Errno::EAGAIN: public Errno {
00106 public:
00107 EAGAIN();
00108 EAGAIN(const string &);
00109 virtual ~EAGAIN();
00110 };
00111
00112 class Errno::EBADF: public Errno {
00113 public:
00114 EBADF();
00115 EBADF(const string &);
00116 virtual ~EBADF();
00117 };
00118
00119 class Errno::EBUSY: public Errno {
00120 public:
00121 EBUSY();
00122 EBUSY(const string &);
00123 virtual ~EBUSY();
00124 };
00125
00126 class Errno::ECHILD: public Errno {
00127 public:
00128 ECHILD();
00129 ECHILD(const string &);
00130 virtual ~ECHILD();
00131 };
00132
00133 class Errno::EDEADLK: public Errno {
00134 public:
00135 EDEADLK();
00136 EDEADLK(const string &);
00137 virtual ~EDEADLK();
00138 };
00139
00140 class Errno::EDOM: public Errno {
00141 public:
00142 EDOM();
00143 EDOM(const string &);
00144 virtual ~EDOM();
00145 };
00146
00147 class Errno::EEXIST: public Errno {
00148 public:
00149 EEXIST();
00150 EEXIST(const string &);
00151 virtual ~EEXIST();
00152 };
00153
00154 class Errno::EFAULT: public Errno {
00155 public:
00156 EFAULT();
00157 EFAULT(const string &);
00158 virtual ~EFAULT();
00159 };
00160
00161 class Errno::EFBIG: public Errno {
00162 public:
00163 EFBIG();
00164 EFBIG(const string &);
00165 virtual ~EFBIG();
00166 };
00167
00168 class Errno::EINTR: public Errno {
00169 public:
00170 EINTR();
00171 EINTR(const string &);
00172 virtual ~EINTR();
00173 };
00174
00175 class Errno::EINVAL: public Errno {
00176 public:
00177 EINVAL();
00178 EINVAL(const string &);
00179 virtual ~EINVAL();
00180 };
00181
00182 class Errno::EIO: public Errno {
00183 public:
00184 EIO();
00185 EIO(const string &);
00186 virtual ~EIO();
00187 };
00188
00189 class Errno::EISDIR: public Errno {
00190 public:
00191 EISDIR();
00192 EISDIR(const string &);
00193 virtual ~EISDIR();
00194 };
00195
00196 class Errno::EMFILE: public Errno {
00197 public:
00198 EMFILE();
00199 EMFILE(const string &);
00200 virtual ~EMFILE();
00201 };
00202
00203 class Errno::EMLINK: public Errno {
00204 public:
00205 EMLINK();
00206 EMLINK(const string &);
00207 virtual ~EMLINK();
00208 };
00209
00210 class Errno::ENAMETOOLONG: public Errno {
00211 public:
00212 ENAMETOOLONG();
00213 ENAMETOOLONG(const string &);
00214 virtual ~ENAMETOOLONG();
00215 };
00216
00217 class Errno::ENFILE: public Errno {
00218 public:
00219 ENFILE();
00220 ENFILE(const string &);
00221 virtual ~ENFILE();
00222 };
00223
00224 class Errno::ENODEV: public Errno {
00225 public:
00226 ENODEV();
00227 ENODEV(const string &);
00228 virtual ~ENODEV();
00229 };
00230
00231 class Errno::ENOENT: public Errno {
00232 public:
00233 ENOENT();
00234 ENOENT(const string &);
00235 virtual ~ENOENT();
00236 };
00237
00238 class Errno::ENOEXEC: public Errno {
00239 public:
00240 ENOEXEC();
00241 ENOEXEC(const string &);
00242 virtual ~ENOEXEC();
00243 };
00244
00245 class Errno::ENOLCK: public Errno {
00246 public:
00247 ENOLCK();
00248 ENOLCK(const string &);
00249 virtual ~ENOLCK();
00250 };
00251
00252 class Errno::ENOMEM: public Errno {
00253 public:
00254 ENOMEM();
00255 ENOMEM(const string &);
00256 virtual ~ENOMEM();
00257 };
00258
00259 class Errno::ENOSPC: public Errno {
00260 public:
00261 ENOSPC();
00262 ENOSPC(const string &);
00263 virtual ~ENOSPC();
00264 };
00265
00266 class Errno::ENOSYS: public Errno {
00267 public:
00268 ENOSYS();
00269 ENOSYS(const string &);
00270 virtual ~ENOSYS();
00271 };
00272
00273 class Errno::ENOTDIR: public Errno {
00274 public:
00275 ENOTDIR();
00276 ENOTDIR(const string &);
00277 virtual ~ENOTDIR();
00278 };
00279
00280 class Errno::ENOTEMPTY: public Errno {
00281 public:
00282 ENOTEMPTY();
00283 ENOTEMPTY(const string &);
00284 virtual ~ENOTEMPTY();
00285 };
00286
00287 class Errno::ENOTTY: public Errno {
00288 public:
00289 ENOTTY();
00290 ENOTTY(const string &);
00291 virtual ~ENOTTY();
00292 };
00293
00294 class Errno::ENXIO: public Errno {
00295 public:
00296 ENXIO();
00297 ENXIO(const string &);
00298 virtual ~ENXIO();
00299 };
00300
00301 class Errno::EPERM: public Errno {
00302 public:
00303 EPERM();
00304 EPERM(const string &);
00305 virtual ~EPERM();
00306 };
00307
00308 class Errno::EPIPE: public Errno {
00309 public:
00310 EPIPE();
00311 EPIPE(const string &);
00312 virtual ~EPIPE();
00313 };
00314
00315 class Errno::ERANGE: public Errno {
00316 public:
00317 ERANGE();
00318 ERANGE(const string &);
00319 virtual ~ERANGE();
00320 };
00321
00322 class Errno::EROFS: public Errno {
00323 public:
00324 EROFS();
00325 EROFS(const string &);
00326 virtual ~EROFS();
00327 };
00328
00329 class Errno::ESPIPE: public Errno {
00330 public:
00331 ESPIPE();
00332 ESPIPE(const string &);
00333 virtual ~ESPIPE();
00334 };
00335
00336 class Errno::ESRCH: public Errno {
00337 public:
00338 ESRCH();
00339 ESRCH(const string &);
00340 virtual ~ESRCH();
00341 };
00342
00343 class Errno::EXDEV: public Errno {
00344 public:
00345 EXDEV();
00346 EXDEV(const string &);
00347 virtual ~EXDEV();
00348 };
00349
00350 class Errno::ETIMEDOUT: public Errno {
00351 public:
00352 ETIMEDOUT();
00353 ETIMEDOUT(const string &);
00354 virtual ~ETIMEDOUT();
00355 };
00356
00357 }
00358 #endif