874 lines
17 KiB
C++
874 lines
17 KiB
C++
|
///////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Copyright (c) 2002-2012, Industrial Light & Magic, a division of Lucas
|
||
|
// Digital Ltd. LLC
|
||
|
//
|
||
|
// All rights reserved.
|
||
|
//
|
||
|
// Redistribution and use in source and binary forms, with or without
|
||
|
// modification, are permitted provided that the following conditions are
|
||
|
// met:
|
||
|
// * Redistributions of source code must retain the above copyright
|
||
|
// notice, this list of conditions and the following disclaimer.
|
||
|
// * Redistributions in binary form must reproduce the above
|
||
|
// copyright notice, this list of conditions and the following disclaimer
|
||
|
// in the documentation and/or other materials provided with the
|
||
|
// distribution.
|
||
|
// * Neither the name of Industrial Light & Magic nor the names of
|
||
|
// its contributors may be used to endorse or promote products derived
|
||
|
// from this software without specific prior written permission.
|
||
|
//
|
||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||
|
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||
|
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
|
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
|
||
|
|
||
|
//----------------------------------------------------------------
|
||
|
//
|
||
|
// Exceptions that correspond to "errno" error codes,
|
||
|
// and a function to make throwing those exceptions easy.
|
||
|
//
|
||
|
//----------------------------------------------------------------
|
||
|
|
||
|
#include "IexThrowErrnoExc.h"
|
||
|
#include "IexErrnoExc.h"
|
||
|
#include <string.h>
|
||
|
#include <errno.h>
|
||
|
|
||
|
#ifdef PLATFORM_WINDOWS
|
||
|
#include <windows.h>
|
||
|
#endif
|
||
|
|
||
|
IEX_INTERNAL_NAMESPACE_SOURCE_ENTER
|
||
|
|
||
|
|
||
|
void throwErrnoExc (const std::string &text, int errnum)
|
||
|
{
|
||
|
#ifdef PLATFORM_WINDOWS
|
||
|
if (0 != getenv("IEXDEBUGTHROW"))
|
||
|
DebugBreak();
|
||
|
#endif
|
||
|
|
||
|
const char *entext = strerror (errnum);
|
||
|
std::string tmp (text);
|
||
|
std::string::size_type pos;
|
||
|
|
||
|
while (std::string::npos != (pos = tmp.find ("%T")))
|
||
|
tmp.replace (pos, 2, entext, strlen (entext));
|
||
|
|
||
|
switch (errnum)
|
||
|
{
|
||
|
#if defined (EPERM)
|
||
|
case EPERM:
|
||
|
throw EpermExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOENT)
|
||
|
case ENOENT:
|
||
|
throw EnoentExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ESRCH)
|
||
|
case ESRCH:
|
||
|
throw EsrchExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EINTR)
|
||
|
case EINTR:
|
||
|
throw EintrExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EIO)
|
||
|
case EIO:
|
||
|
throw EioExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENXIO)
|
||
|
case ENXIO:
|
||
|
throw EnxioExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (E2BIG)
|
||
|
case E2BIG:
|
||
|
throw E2bigExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOEXEC)
|
||
|
case ENOEXEC:
|
||
|
throw EnoexecExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBADF)
|
||
|
case EBADF:
|
||
|
throw EbadfExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECHILD)
|
||
|
case ECHILD:
|
||
|
throw EchildExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EAGAIN)
|
||
|
case EAGAIN:
|
||
|
throw EagainExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOMEM)
|
||
|
case ENOMEM:
|
||
|
throw EnomemExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EACCES)
|
||
|
case EACCES:
|
||
|
throw EaccesExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EFAULT)
|
||
|
case EFAULT:
|
||
|
throw EfaultExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTBLK)
|
||
|
case ENOTBLK:
|
||
|
throw EnotblkExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBUSY)
|
||
|
case EBUSY:
|
||
|
throw EbusyExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EEXIST)
|
||
|
case EEXIST:
|
||
|
throw EexistExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EXDEV)
|
||
|
case EXDEV:
|
||
|
throw ExdevExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENODEV)
|
||
|
case ENODEV:
|
||
|
throw EnodevExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTDIR)
|
||
|
case ENOTDIR:
|
||
|
throw EnotdirExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EISDIR)
|
||
|
case EISDIR:
|
||
|
throw EisdirExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EINVAL)
|
||
|
case EINVAL:
|
||
|
throw EinvalExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENFILE)
|
||
|
case ENFILE:
|
||
|
throw EnfileExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EMFILE)
|
||
|
case EMFILE:
|
||
|
throw EmfileExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTTY)
|
||
|
case ENOTTY:
|
||
|
throw EnottyExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ETXTBSY)
|
||
|
case ETXTBSY:
|
||
|
throw EtxtbsyExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EFBIG)
|
||
|
case EFBIG:
|
||
|
throw EfbigExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOSPC)
|
||
|
case ENOSPC:
|
||
|
throw EnospcExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ESPIPE)
|
||
|
case ESPIPE:
|
||
|
throw EspipeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EROFS)
|
||
|
case EROFS:
|
||
|
throw ErofsExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EMLINK)
|
||
|
case EMLINK:
|
||
|
throw EmlinkExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EPIPE)
|
||
|
case EPIPE:
|
||
|
throw EpipeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EDOM)
|
||
|
case EDOM:
|
||
|
throw EdomExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ERANGE)
|
||
|
case ERANGE:
|
||
|
throw ErangeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOMSG)
|
||
|
case ENOMSG:
|
||
|
throw EnomsgExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EIDRM)
|
||
|
case EIDRM:
|
||
|
throw EidrmExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECHRNG)
|
||
|
case ECHRNG:
|
||
|
throw EchrngExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EL2NSYNC)
|
||
|
case EL2NSYNC:
|
||
|
throw El2nsyncExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EL3HLT)
|
||
|
case EL3HLT:
|
||
|
throw El3hltExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EL3RST)
|
||
|
case EL3RST:
|
||
|
throw El3rstExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ELNRNG)
|
||
|
case ELNRNG:
|
||
|
throw ElnrngExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EUNATCH)
|
||
|
case EUNATCH:
|
||
|
throw EunatchExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOSCI)
|
||
|
case ENOCSI:
|
||
|
throw EnocsiExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EL2HLT)
|
||
|
case EL2HLT:
|
||
|
throw El2hltExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EDEADLK)
|
||
|
case EDEADLK:
|
||
|
throw EdeadlkExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOLCK)
|
||
|
case ENOLCK:
|
||
|
throw EnolckExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBADE)
|
||
|
case EBADE:
|
||
|
throw EbadeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBADR)
|
||
|
case EBADR:
|
||
|
throw EbadrExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EXFULL)
|
||
|
case EXFULL:
|
||
|
throw ExfullExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOANO)
|
||
|
case ENOANO:
|
||
|
throw EnoanoExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBADRQC)
|
||
|
case EBADRQC:
|
||
|
throw EbadrqcExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBADSLT)
|
||
|
case EBADSLT:
|
||
|
throw EbadsltExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EDEADLOCK) && defined (EDEADLK)
|
||
|
#if EDEADLOCK != EDEADLK
|
||
|
case EDEADLOCK:
|
||
|
throw EdeadlockExc (tmp);
|
||
|
#endif
|
||
|
#elif defined (EDEADLOCK)
|
||
|
case EDEADLOCK:
|
||
|
throw EdeadlockExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBFONT)
|
||
|
case EBFONT:
|
||
|
throw EbfontExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOSTR)
|
||
|
case ENOSTR:
|
||
|
throw EnostrExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENODATA)
|
||
|
case ENODATA:
|
||
|
throw EnodataExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ETIME)
|
||
|
case ETIME:
|
||
|
throw EtimeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOSR)
|
||
|
case ENOSR:
|
||
|
throw EnosrExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENONET)
|
||
|
case ENONET:
|
||
|
throw EnonetExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOPKG)
|
||
|
case ENOPKG:
|
||
|
throw EnopkgExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EREMOTE)
|
||
|
case EREMOTE:
|
||
|
throw EremoteExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOLINK)
|
||
|
case ENOLINK:
|
||
|
throw EnolinkExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EADV)
|
||
|
case EADV:
|
||
|
throw EadvExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ESRMNT)
|
||
|
case ESRMNT:
|
||
|
throw EsrmntExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECOMM)
|
||
|
case ECOMM:
|
||
|
throw EcommExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EPROTO)
|
||
|
case EPROTO:
|
||
|
throw EprotoExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EMULTIHOP)
|
||
|
case EMULTIHOP:
|
||
|
throw EmultihopExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBADMSG)
|
||
|
case EBADMSG:
|
||
|
throw EbadmsgExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENAMETOOLONG)
|
||
|
case ENAMETOOLONG:
|
||
|
throw EnametoolongExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EOVERFLOW)
|
||
|
case EOVERFLOW:
|
||
|
throw EoverflowExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTUNIQ)
|
||
|
case ENOTUNIQ:
|
||
|
throw EnotuniqExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBADFD)
|
||
|
case EBADFD:
|
||
|
throw EbadfdExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EREMCHG)
|
||
|
case EREMCHG:
|
||
|
throw EremchgExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ELIBACC)
|
||
|
case ELIBACC:
|
||
|
throw ElibaccExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ELIBBAD)
|
||
|
case ELIBBAD:
|
||
|
throw ElibbadExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ELIBSCN)
|
||
|
case ELIBSCN:
|
||
|
throw ElibscnExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ELIBMAX)
|
||
|
case ELIBMAX:
|
||
|
throw ElibmaxExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ELIBEXEC)
|
||
|
case ELIBEXEC:
|
||
|
throw ElibexecExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EILSEQ)
|
||
|
case EILSEQ:
|
||
|
throw EilseqExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOSYS)
|
||
|
case ENOSYS:
|
||
|
throw EnosysExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ELOOP)
|
||
|
case ELOOP:
|
||
|
throw EloopExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ERESTART)
|
||
|
case ERESTART:
|
||
|
throw ErestartExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ESTRPIPE)
|
||
|
case ESTRPIPE:
|
||
|
throw EstrpipeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTEMPTY)
|
||
|
case ENOTEMPTY:
|
||
|
throw EnotemptyExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EUSERS)
|
||
|
case EUSERS:
|
||
|
throw EusersExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTSOCK)
|
||
|
case ENOTSOCK:
|
||
|
throw EnotsockExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EDESTADDRREQ)
|
||
|
case EDESTADDRREQ:
|
||
|
throw EdestaddrreqExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EMSGSIZE)
|
||
|
case EMSGSIZE:
|
||
|
throw EmsgsizeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EPROTOTYPE)
|
||
|
case EPROTOTYPE:
|
||
|
throw EprototypeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOPROTOOPT)
|
||
|
case ENOPROTOOPT:
|
||
|
throw EnoprotooptExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EPROTONOSUPPORT)
|
||
|
case EPROTONOSUPPORT:
|
||
|
throw EprotonosupportExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ESOCKTNOSUPPORT)
|
||
|
case ESOCKTNOSUPPORT:
|
||
|
throw EsocktnosupportExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EOPNOTSUPP)
|
||
|
case EOPNOTSUPP:
|
||
|
throw EopnotsuppExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EPFNOSUPPORT)
|
||
|
case EPFNOSUPPORT:
|
||
|
throw EpfnosupportExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EAFNOSUPPORT)
|
||
|
case EAFNOSUPPORT:
|
||
|
throw EafnosupportExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EADDRINUSE)
|
||
|
case EADDRINUSE:
|
||
|
throw EaddrinuseExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EADDRNOTAVAIL)
|
||
|
case EADDRNOTAVAIL:
|
||
|
throw EaddrnotavailExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENETDOWN)
|
||
|
case ENETDOWN:
|
||
|
throw EnetdownExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENETUNREACH)
|
||
|
case ENETUNREACH:
|
||
|
throw EnetunreachExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENETRESET)
|
||
|
case ENETRESET:
|
||
|
throw EnetresetExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECONNABORTED)
|
||
|
case ECONNABORTED:
|
||
|
throw EconnabortedExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECONNRESET)
|
||
|
case ECONNRESET:
|
||
|
throw EconnresetExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOBUFS)
|
||
|
case ENOBUFS:
|
||
|
throw EnobufsExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EISCONN)
|
||
|
case EISCONN:
|
||
|
throw EisconnExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTCONN)
|
||
|
case ENOTCONN:
|
||
|
throw EnotconnExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ESHUTDOWN)
|
||
|
case ESHUTDOWN:
|
||
|
throw EshutdownExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ETOOMANYREFS)
|
||
|
case ETOOMANYREFS:
|
||
|
throw EtoomanyrefsExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ETIMEDOUT)
|
||
|
case ETIMEDOUT:
|
||
|
throw EtimedoutExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECONNREFUSED)
|
||
|
case ECONNREFUSED:
|
||
|
throw EconnrefusedExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EHOSTDOWN)
|
||
|
case EHOSTDOWN:
|
||
|
throw EhostdownExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EHOSTUNREACH)
|
||
|
case EHOSTUNREACH:
|
||
|
throw EhostunreachExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EALREADY)
|
||
|
case EALREADY:
|
||
|
throw EalreadyExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EINPROGRESS)
|
||
|
case EINPROGRESS:
|
||
|
throw EinprogressExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ESTALE)
|
||
|
case ESTALE:
|
||
|
throw EstaleExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EIORESID)
|
||
|
case EIORESID:
|
||
|
throw EioresidExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EUCLEAN)
|
||
|
case EUCLEAN:
|
||
|
throw EucleanExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTNAM)
|
||
|
case ENOTNAM:
|
||
|
throw EnotnamExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENAVAIL)
|
||
|
case ENAVAIL:
|
||
|
throw EnavailExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EISNAM)
|
||
|
case EISNAM:
|
||
|
throw EisnamExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EREMOTEIO)
|
||
|
case EREMOTEIO:
|
||
|
throw EremoteioExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EINIT)
|
||
|
case EINIT:
|
||
|
throw EinitExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EREMDEV)
|
||
|
case EREMDEV:
|
||
|
throw EremdevExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECANCELED)
|
||
|
case ECANCELED:
|
||
|
throw EcanceledExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOLIMFILE)
|
||
|
case ENOLIMFILE:
|
||
|
throw EnolimfileExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EPROCLIM)
|
||
|
case EPROCLIM:
|
||
|
throw EproclimExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EDISJOINT)
|
||
|
case EDISJOINT:
|
||
|
throw EdisjointExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOLOGIN)
|
||
|
case ENOLOGIN:
|
||
|
throw EnologinExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ELOGINLIM)
|
||
|
case ELOGINLIM:
|
||
|
throw EloginlimExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EGROUPLOOP)
|
||
|
case EGROUPLOOP:
|
||
|
throw EgrouploopExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOATTACH)
|
||
|
case ENOATTACH:
|
||
|
throw EnoattachExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTSUP) && defined (EOPNOTSUPP)
|
||
|
#if ENOTSUP != EOPNOTSUPP
|
||
|
case ENOTSUP:
|
||
|
throw EnotsupExc (tmp);
|
||
|
#endif
|
||
|
#elif defined (ENOTSUP)
|
||
|
case ENOTSUP:
|
||
|
throw EnotsupExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOATTR)
|
||
|
case ENOATTR:
|
||
|
throw EnoattrExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EDIRCORRUPTED)
|
||
|
case EDIRCORRUPTED:
|
||
|
throw EdircorruptedExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EDQUOT)
|
||
|
case EDQUOT:
|
||
|
throw EdquotExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENFSREMOTE)
|
||
|
case ENFSREMOTE:
|
||
|
throw EnfsremoteExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECONTROLLER)
|
||
|
case ECONTROLLER:
|
||
|
throw EcontrollerExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTCONTROLLER)
|
||
|
case ENOTCONTROLLER:
|
||
|
throw EnotcontrollerExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EENQUEUED)
|
||
|
case EENQUEUED:
|
||
|
throw EenqueuedExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTENQUEUED)
|
||
|
case ENOTENQUEUED:
|
||
|
throw EnotenqueuedExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EJOINED)
|
||
|
case EJOINED:
|
||
|
throw EjoinedExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTJOINED)
|
||
|
case ENOTJOINED:
|
||
|
throw EnotjoinedExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOPROC)
|
||
|
case ENOPROC:
|
||
|
throw EnoprocExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EMUSTRUN)
|
||
|
case EMUSTRUN:
|
||
|
throw EmustrunExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOTSTOPPED)
|
||
|
case ENOTSTOPPED:
|
||
|
throw EnotstoppedExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECLOCKCPU)
|
||
|
case ECLOCKCPU:
|
||
|
throw EclockcpuExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EINVALSTATE)
|
||
|
case EINVALSTATE:
|
||
|
throw EinvalstateExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOEXIST)
|
||
|
case ENOEXIST:
|
||
|
throw EnoexistExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EENDOFMINOR)
|
||
|
case EENDOFMINOR:
|
||
|
throw EendofminorExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EBUFSIZE)
|
||
|
case EBUFSIZE:
|
||
|
throw EbufsizeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EEMPTY)
|
||
|
case EEMPTY:
|
||
|
throw EemptyExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ENOINTRGROUP)
|
||
|
case ENOINTRGROUP:
|
||
|
throw EnointrgroupExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EINVALMODE)
|
||
|
case EINVALMODE:
|
||
|
throw EinvalmodeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (ECANTEXTENT)
|
||
|
case ECANTEXTENT:
|
||
|
throw EcantextentExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EINVALTIME)
|
||
|
case EINVALTIME:
|
||
|
throw EinvaltimeExc (tmp);
|
||
|
#endif
|
||
|
|
||
|
#if defined (EDESTROYED)
|
||
|
case EDESTROYED:
|
||
|
throw EdestroyedExc (tmp);
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
throw ErrnoExc (tmp);
|
||
|
}
|
||
|
|
||
|
|
||
|
void throwErrnoExc (const std::string &text)
|
||
|
{
|
||
|
throwErrnoExc (text, errno);
|
||
|
}
|
||
|
|
||
|
void throwErrnoExc()
|
||
|
{
|
||
|
std::string txt = "%T.";
|
||
|
throwErrnoExc (txt);
|
||
|
}
|
||
|
|
||
|
IEX_INTERNAL_NAMESPACE_SOURCE_EXIT
|