summaryrefslogtreecommitdiff
path: root/libs/mpi/src/exception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/mpi/src/exception.cpp')
-rw-r--r--libs/mpi/src/exception.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/libs/mpi/src/exception.cpp b/libs/mpi/src/exception.cpp
new file mode 100644
index 000000000..9cb4c25e7
--- /dev/null
+++ b/libs/mpi/src/exception.cpp
@@ -0,0 +1,29 @@
+// Copyright (C) 2007 Trustees of Indiana University
+
+// Authors: Douglas Gregor
+// Andrew Lumsdaine
+
+// 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)
+#include <boost/mpi/exception.hpp>
+
+namespace boost { namespace mpi {
+
+exception::exception(const char* routine, int result_code)
+ : routine_(routine), result_code_(result_code)
+{
+ // Query the MPI implementation for its reason for failure
+ char buffer[MPI_MAX_ERROR_STRING];
+ int len;
+ MPI_Error_string(result_code, buffer, &len);
+
+ // Construct the complete error message
+ message.append(routine_);
+ message.append(": ");
+ message.append(buffer, len);
+}
+
+exception::~exception() throw() { }
+
+} } // end namespace boost::mpi