Branch data Line data Source code
1 : : // ***************************************************************************** 2 : : /*! 3 : : \file src/UnitTest/QuietCerr.hpp 4 : : \copyright 2012-2015 J. Bakosi, 5 : : 2016-2018 Los Alamos National Security, LLC., 6 : : 2019-2021 Triad National Security, LLC. 7 : : All rights reserved. See the LICENSE file for details. 8 : : \brief Charm++ nodegroup to quiet std::cerr in a thread-safe fashion 9 : : \details Charm++ nodegroup to quiet std::cerr in a thread-safe fashion. 10 : : */ 11 : : // ***************************************************************************** 12 : : #ifndef QuietCerr_h 13 : : #define QuietCerr_h 14 : : 15 : : #include "NoWarning/quietcerr.decl.h" 16 : : 17 : : namespace tk { 18 : : 19 : : //! Chare state Charm++ chare nodegroup class 20 : : //! \details Instantiations of QuietCerr comprise a processor aware Charm++ 21 : : //! chare node group. When instantiated, a new object is created on each 22 : : //! compute node and not more (as opposed to individual chares or chare array 23 : : //! object elements). See also the Charm++ interface file quietcerr.ci. 24 [ + - ]: 36 : class QuietCerr : public CBase_QuietCerr { 25 : : 26 : : public: 27 : : //! Quiet std::cerr by redirecting its stream state to a stringstream 28 : : static void quiet(); 29 : : 30 : : //! Destructor: restore std::cerr's stream state 31 : : ~QuietCerr() override; 32 : : }; 33 : : 34 : : } // tk:: 35 : : 36 : : #endif // QuietCerr_h