// -*- C++ -*- /*****************************************************************************\ * Copyright (c) 2004 Mark Aylett * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * * "Software"), to deal in the Software without restriction, including * * without limitation the rights to use, copy, modify, merge, publish, * * distribute, sublicense, and/or sell copies of the Software, and to permit * * persons to whom the Software is furnished to do so, subject to the * * following conditions: * * * * The above copyright notice and this permission notice shall be included * * in all copies or substantial portions of the Software. * * * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN * * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE * * USE OR OTHER DEALINGS IN THE SOFTWARE. * \*****************************************************************************/ /** * \file mar_exception_cpp.h * \brief TODO */ #ifndef INCLUDED_MAR_EXCEPTION_CPP #define INCLUDED_MAR_EXCEPTION_CPP #ifndef INCLUDED_MAR_DEFS_CPP #include "mar_defs_cpp.h" #endif // INCLUDED_MAR_DEFS_CPP #ifndef INCLUDED_MAR_C #include "mar_c.h" #endif // INCLUDED_MAR_C #ifndef INCLUDED_CSTRING #define INCLUDED_CSTRING #include #endif // INCLUDED_CSTRING #ifndef INCLUDED_EXCEPTION #define INCLUDED_EXCEPTION #include #endif // INCLUDED_EXCEPTION namespace mar { class error : public std::exception { int num_; public: error() : num_(mar_errno()) { } explicit error(int n) : num_(n) { } const char* what() const MAR_NOTHROW { return strerror(num_); } int num() const MAR_NOTHROW { return num_; } }; } #endif // INCLUDED_MAR_EXCEPTION_CPP