Server IP : 172.67.216.182 / Your IP : 162.158.88.11 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/boost/boost_1_59_0/boost/mpi/ |
Upload File : |
// Copyright (C) 2005-2006 Douglas Gregor <doug.gregor -at- gmail.com>. // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) /** @file exception.hpp * * This header provides exception classes that report MPI errors to * the user and macros that translate MPI error codes into Boost.MPI * exceptions. */ #ifndef BOOST_MPI_EXCEPTION_HPP #define BOOST_MPI_EXCEPTION_HPP #include <boost/mpi/config.hpp> #include <exception> #include <string> #include <boost/config.hpp> #include <boost/throw_exception.hpp> namespace boost { namespace mpi { /** @brief Catch-all exception class for MPI errors. * * Instances of this class will be thrown when an MPI error * occurs. MPI failures that trigger these exceptions may or may not * be recoverable, depending on the underlying MPI * implementation. Consult the documentation for your MPI * implementation to determine the effect of MPI errors. */ class BOOST_MPI_DECL exception : public std::exception { public: /** * Build a new @c exception exception. * * @param routine The MPI routine in which the error * occurred. This should be a pointer to a string constant: it * will not be copied. * * @param result_code The result code returned from the MPI * routine that aborted with an error. */ exception(const char* routine, int result_code); virtual ~exception() throw(); /** * A description of the error that occurred. */ virtual const char * what () const throw () { return this->message.c_str(); } /** Retrieve the name of the MPI routine that reported the error. */ const char* routine() const { return routine_; } /** * @brief Retrieve the result code returned from the MPI routine * that reported the error. */ int result_code() const { return result_code_; } /** * @brief Returns the MPI error class associated with the error that * triggered this exception. */ int error_class() const { int result; MPI_Error_class(result_code_, &result); return result; } protected: /// The MPI routine that triggered the error const char* routine_; /// The failed result code reported by the MPI implementation. int result_code_; /// The formatted error message std::string message; }; /** * Call the MPI routine MPIFunc with arguments Args (surrounded by * parentheses). If the result is not MPI_SUCCESS, use * boost::throw_exception to throw an exception or abort, depending on * BOOST_NO_EXCEPTIONS. */ #define BOOST_MPI_CHECK_RESULT( MPIFunc, Args ) \ { \ int _check_result = MPIFunc Args; \ if (_check_result != MPI_SUCCESS) \ boost::throw_exception(boost::mpi::exception(#MPIFunc, \ _check_result)); \ } } } // end namespace boost::mpi #endif // BOOST_MPI_EXCEPTION_HPP