aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/restricted/boost/filesystem/src/exception.cpp
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2024-10-18 20:31:38 +0300
committerGitHub <noreply@github.com>2024-10-18 20:31:38 +0300
commit2a74bac2d2d3bccb4e10120f1ead805640ec9dd0 (patch)
tree047e4818ced5aaf73f58517629e5260b5291f9f0 /contrib/restricted/boost/filesystem/src/exception.cpp
parent2d9656823e9521d8c29ea4c9a1d0eab78391abfc (diff)
parent3d834a1923bbf9403cd4a448e7f32b670aa4124f (diff)
downloadydb-2a74bac2d2d3bccb4e10120f1ead805640ec9dd0.tar.gz
Merge pull request #10502 from ydb-platform/mergelibs-241016-1210
Library import 241016-1210
Diffstat (limited to 'contrib/restricted/boost/filesystem/src/exception.cpp')
-rw-r--r--contrib/restricted/boost/filesystem/src/exception.cpp188
1 files changed, 188 insertions, 0 deletions
diff --git a/contrib/restricted/boost/filesystem/src/exception.cpp b/contrib/restricted/boost/filesystem/src/exception.cpp
new file mode 100644
index 0000000000..0b92c0d9c1
--- /dev/null
+++ b/contrib/restricted/boost/filesystem/src/exception.cpp
@@ -0,0 +1,188 @@
+// boost/filesystem/exception.hpp -----------------------------------------------------//
+
+// Copyright Beman Dawes 2003
+// Copyright Andrey Semashev 2019
+
+// Distributed under the Boost Software License, Version 1.0.
+// See http://www.boost.org/LICENSE_1_0.txt
+
+// Library home page: http://www.boost.org/libs/filesystem
+
+#include "platform_config.hpp"
+
+#include <string>
+#include <boost/system/error_code.hpp>
+#include <boost/system/system_category.hpp>
+#include <boost/filesystem/config.hpp>
+#include <boost/filesystem/path.hpp>
+#include <boost/filesystem/exception.hpp>
+
+#include "error_handling.hpp"
+
+#include <boost/filesystem/detail/header.hpp> // must be the last #include
+
+namespace boost {
+namespace filesystem {
+
+BOOST_FILESYSTEM_DECL filesystem_error::filesystem_error(const char* what_arg, system::error_code ec) :
+ system::system_error(ec, what_arg)
+{
+ try
+ {
+ m_imp_ptr.reset(new impl());
+ }
+ catch (...)
+ {
+ m_imp_ptr.reset();
+ }
+}
+
+BOOST_FILESYSTEM_DECL filesystem_error::filesystem_error(std::string const& what_arg, system::error_code ec) :
+ system::system_error(ec, what_arg)
+{
+ try
+ {
+ m_imp_ptr.reset(new impl());
+ }
+ catch (...)
+ {
+ m_imp_ptr.reset();
+ }
+}
+
+BOOST_FILESYSTEM_DECL filesystem_error::filesystem_error(const char* what_arg, path const& path1_arg, system::error_code ec) :
+ system::system_error(ec, what_arg)
+{
+ try
+ {
+ m_imp_ptr.reset(new impl(path1_arg));
+ }
+ catch (...)
+ {
+ m_imp_ptr.reset();
+ }
+}
+
+BOOST_FILESYSTEM_DECL filesystem_error::filesystem_error(std::string const& what_arg, path const& path1_arg, system::error_code ec) :
+ system::system_error(ec, what_arg)
+{
+ try
+ {
+ m_imp_ptr.reset(new impl(path1_arg));
+ }
+ catch (...)
+ {
+ m_imp_ptr.reset();
+ }
+}
+
+BOOST_FILESYSTEM_DECL filesystem_error::filesystem_error(const char* what_arg, path const& path1_arg, path const& path2_arg, system::error_code ec) :
+ system::system_error(ec, what_arg)
+{
+ try
+ {
+ m_imp_ptr.reset(new impl(path1_arg, path2_arg));
+ }
+ catch (...)
+ {
+ m_imp_ptr.reset();
+ }
+}
+
+BOOST_FILESYSTEM_DECL filesystem_error::filesystem_error(std::string const& what_arg, path const& path1_arg, path const& path2_arg, system::error_code ec) :
+ system::system_error(ec, what_arg)
+{
+ try
+ {
+ m_imp_ptr.reset(new impl(path1_arg, path2_arg));
+ }
+ catch (...)
+ {
+ m_imp_ptr.reset();
+ }
+}
+
+BOOST_FILESYSTEM_DECL filesystem_error::filesystem_error(filesystem_error const& that) :
+ system::system_error(static_cast< system::system_error const& >(that)),
+ m_imp_ptr(that.m_imp_ptr)
+{
+}
+
+BOOST_FILESYSTEM_DECL filesystem_error& filesystem_error::operator=(filesystem_error const& that)
+{
+ static_cast< system::system_error& >(*this) = static_cast< system::system_error const& >(that);
+ m_imp_ptr = that.m_imp_ptr;
+ return *this;
+}
+
+BOOST_FILESYSTEM_DECL filesystem_error::~filesystem_error() noexcept
+{
+}
+
+BOOST_FILESYSTEM_DECL const char* filesystem_error::what() const noexcept
+{
+ if (m_imp_ptr.get()) try
+ {
+ if (m_imp_ptr->m_what.empty())
+ {
+ m_imp_ptr->m_what = system::system_error::what();
+ if (!m_imp_ptr->m_path1.empty())
+ {
+ m_imp_ptr->m_what += ": \"";
+ m_imp_ptr->m_what += m_imp_ptr->m_path1.string();
+ m_imp_ptr->m_what += "\"";
+ }
+ if (!m_imp_ptr->m_path2.empty())
+ {
+ m_imp_ptr->m_what += ", \"";
+ m_imp_ptr->m_what += m_imp_ptr->m_path2.string();
+ m_imp_ptr->m_what += "\"";
+ }
+ }
+
+ return m_imp_ptr->m_what.c_str();
+ }
+ catch (...)
+ {
+ m_imp_ptr->m_what.clear();
+ }
+
+ return system::system_error::what();
+}
+
+BOOST_FILESYSTEM_DECL path const& filesystem_error::get_empty_path() noexcept
+{
+ static const path empty_path;
+ return empty_path;
+}
+
+// error handling helpers declared in error_handling.hpp -----------------------------------------------------//
+
+void emit_error(err_t error_num, system::error_code* ec, const char* message)
+{
+ if (!ec)
+ BOOST_FILESYSTEM_THROW(filesystem_error(message, system::error_code(error_num, system::system_category())));
+ else
+ ec->assign(error_num, system::system_category());
+}
+
+void emit_error(err_t error_num, path const& p, system::error_code* ec, const char* message)
+{
+ if (!ec)
+ BOOST_FILESYSTEM_THROW(filesystem_error(message, p, system::error_code(error_num, system::system_category())));
+ else
+ ec->assign(error_num, system::system_category());
+}
+
+void emit_error(err_t error_num, path const& p1, path const& p2, system::error_code* ec, const char* message)
+{
+ if (!ec)
+ BOOST_FILESYSTEM_THROW(filesystem_error(message, p1, p2, system::error_code(error_num, system::system_category())));
+ else
+ ec->assign(error_num, system::system_category());
+}
+
+} // namespace filesystem
+} // namespace boost
+
+#include <boost/filesystem/detail/footer.hpp>