X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fboost%2Fboost%2Fio%2Fdetail%2Fostream_guard.hpp;fp=ceph%2Fsrc%2Fboost%2Fboost%2Fio%2Fdetail%2Fostream_guard.hpp;h=6999d8134482edff95df6463ba7494e6068e056c;hb=f67539c23b11f3b8a2ecaeeddf7a403ae1c442a8;hp=0000000000000000000000000000000000000000;hpb=64a4c04e6850c6d9086e4c37f57c4eada541b05e;p=ceph.git diff --git a/ceph/src/boost/boost/io/detail/ostream_guard.hpp b/ceph/src/boost/boost/io/detail/ostream_guard.hpp new file mode 100644 index 000000000..6999d8134 --- /dev/null +++ b/ceph/src/boost/boost/io/detail/ostream_guard.hpp @@ -0,0 +1,45 @@ +/* +Copyright 2019-2020 Glen Joseph Fernandes +(glenjofe@gmail.com) + +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) +*/ +#ifndef BOOST_IO_DETAIL_OSTREAM_GUARD_HPP +#define BOOST_IO_DETAIL_OSTREAM_GUARD_HPP + +#include +#include + +namespace boost { +namespace io { +namespace detail { + +template +class ostream_guard { +public: + explicit ostream_guard(std::basic_ostream& os) BOOST_NOEXCEPT + : os_(&os) { } + + ~ostream_guard() BOOST_NOEXCEPT_IF(false) { + if (os_) { + os_->setstate(std::basic_ostream::badbit); + } + } + + void release() BOOST_NOEXCEPT { + os_ = 0; + } + +private: + ostream_guard(const ostream_guard&); + ostream_guard& operator=(const ostream_guard&); + + std::basic_ostream* os_; +}; + +} /* detail */ +} /* io */ +} /* boost */ + +#endif