Errno.hh

00001 //********************************************************************
00002 //*** Exceptions/Errno.hh
00003 //*** Copyright (c) 2001 by Markus Winand <mws@fatalmind.com>
00004 //*** $Id: Errno.hh,v 1.18 2003-05-29 20:49:34 mws Exp $
00005 //********************************************************************
00006 
00007 #ifndef INCLUDED_ERRNO_H
00008 #define INCLUDED_ERRNO_H
00009 
00010 #include <string>
00011 //#include <memory>
00012 #include "Exception.hh"
00013 #include "OS_Errno.hh" // this is required to undef all the <errno.h> values
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 //  class Throw;
00037     /* POSIX Values */
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     /* should be posix?? */
00078     class ETIMEDOUT;
00079 };
00080 
00081 /*
00082 class Errno::Throw {
00083     public:
00084         Throw();
00085         Throw(int);
00086         Throw(const string&);
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

Generated on Mon Nov 9 16:21:24 2009 for ResourcePool by  doxygen 1.5.3