X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fae10815035e4d0d150ff5fdbb7aa8fe25448c57..ca8aa3b82bdbaa43f4ba87b685cd7cee4d371b90:/include/xbt/ex.hpp diff --git a/include/xbt/ex.hpp b/include/xbt/ex.hpp index c1dcfb8a1a..9b6ff5ff32 100644 --- a/include/xbt/ex.hpp +++ b/include/xbt/ex.hpp @@ -1,44 +1,8 @@ -/* Copyright (c) 2005-2015. The SimGrid Team. +/* Copyright (c) 2005-2018. The SimGrid Team. * All rights reserved. */ -/* Copyright (c) 2002-2004 Ralf S. Engelschall */ -/* Copyright (c) 2002-2004 The OSSP Project */ -/* Copyright (c) 2002-2004 Cable & Wireless */ -/* All rights reserved. */ - -/* This code is inspirated from the OSSP version (as retrieved back in 2004)*/ -/* It was heavily modified to fit the SimGrid framework. */ - -/* The OSSP version has the following copyright notice: -** OSSP ex - Exception Handling -** Copyright (c) 2002-2004 Ralf S. Engelschall -** Copyright (c) 2002-2004 The OSSP Project -** Copyright (c) 2002-2004 Cable & Wireless -** -** This file is part of OSSP ex, an exception handling library -** which can be found at http://www.ossp.org/pkg/lib/ex/. -** -** Permission to use, copy, modify, and distribute this software for -** any purpose with or without fee is hereby granted, provided that -** the above copyright notice and this permission notice appear in all -** copies. -** -** THIS SOFTWARE IS PROVIDED `AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR -** 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. - */ - -/* The extensions made for the SimGrid project can either be distributed */ -/* under the same license, or under the LGPL v2.1 */ +/* This program is free software; you can redistribute it and/or modify it + * under the terms of the license (GNU LGPL) which comes with this package. */ #ifndef SIMGRID_XBT_EX_HPP #define SIMGRID_XBT_EX_HPP @@ -48,21 +12,21 @@ #include -/** (Deprecated) Generic exception +/** A legacy exception * - * An error is defined by a category and a value within that category. + * It is defined by a category and a value within that category (as well as + * an optional error message). * * This used to be a structure for C exceptions but it has been retrofitted * as a C++ exception and some of its data has been moved in the - * WithContextException base class. We should deprecate it and replace it + * @ref WithContextException base class. We should deprecate it and replace it * with either C++ different exceptions or `std::system_error` which already * provides this (category + error code) logic. + * + * @ingroup XBT_ex_c */ -struct XBT_PUBLIC() xbt_ex : - public std::runtime_error, - public simgrid::xbt::WithContextException { +class XBT_PUBLIC xbt_ex : public std::runtime_error, public simgrid::xbt::WithContextException { public: - xbt_ex() : std::runtime_error("") {} @@ -77,13 +41,13 @@ public: simgrid::xbt::WithContextException(throwpoint, simgrid::xbt::backtrace()) {} - ~xbt_ex() override; + ~xbt_ex(); // DO NOT define it here -- see ex.cpp for a rationale /** Category (what went wrong) */ - xbt_errcat_t category; + xbt_errcat_t category = unknown_error; /** Why did it went wrong */ - int value; + int value = 0; };