Chris@16: // Copyright Ralf W. Grosse-Kunstleve 2006. Chris@16: // Distributed under the Boost Software License, Version 1.0. (See Chris@16: // accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: #ifndef DOCSTRING_OPTIONS_RWGK20060111_HPP Chris@16: # define DOCSTRING_OPTIONS_RWGK20060111_HPP Chris@16: Chris@16: #include Chris@16: Chris@16: namespace boost { namespace python { Chris@16: Chris@16: // Note: the static data members are defined in object/function.cpp Chris@16: Chris@16: class BOOST_PYTHON_DECL docstring_options : boost::noncopyable Chris@16: { Chris@16: public: Chris@16: docstring_options(bool show_all=true) Chris@16: { Chris@16: previous_show_user_defined_ = show_user_defined_; Chris@16: previous_show_py_signatures_ = show_py_signatures_; Chris@16: previous_show_cpp_signatures_ = show_cpp_signatures_; Chris@16: show_user_defined_ = show_all; Chris@16: show_cpp_signatures_ = show_all; Chris@16: show_py_signatures_ = show_all; Chris@16: } Chris@16: Chris@16: docstring_options(bool show_user_defined, bool show_signatures) Chris@16: { Chris@16: previous_show_user_defined_ = show_user_defined_; Chris@16: previous_show_cpp_signatures_ = show_cpp_signatures_; Chris@16: previous_show_py_signatures_ = show_py_signatures_; Chris@16: show_user_defined_ = show_user_defined; Chris@16: show_cpp_signatures_ = show_signatures; Chris@16: show_py_signatures_ = show_signatures; Chris@16: } Chris@16: Chris@16: docstring_options(bool show_user_defined, bool show_py_signatures, bool show_cpp_signatures) Chris@16: { Chris@16: previous_show_user_defined_ = show_user_defined_; Chris@16: previous_show_cpp_signatures_ = show_cpp_signatures_; Chris@16: previous_show_py_signatures_ = show_py_signatures_; Chris@16: show_user_defined_ = show_user_defined; Chris@16: show_cpp_signatures_ = show_cpp_signatures; Chris@16: show_py_signatures_ = show_py_signatures; Chris@16: } Chris@16: Chris@16: ~docstring_options() Chris@16: { Chris@16: show_user_defined_ = previous_show_user_defined_; Chris@16: show_cpp_signatures_ = previous_show_cpp_signatures_; Chris@16: show_py_signatures_ = previous_show_py_signatures_; Chris@16: } Chris@16: Chris@16: void Chris@16: disable_user_defined() { show_user_defined_ = false; } Chris@16: Chris@16: void Chris@16: enable_user_defined() { show_user_defined_ = true; } Chris@16: Chris@16: void Chris@16: disable_py_signatures() Chris@16: { Chris@16: show_py_signatures_ = false; Chris@16: } Chris@16: Chris@16: void Chris@16: enable_py_signatures() Chris@16: { Chris@16: show_py_signatures_ = true; Chris@16: } Chris@16: Chris@16: void Chris@16: disable_cpp_signatures() Chris@16: { Chris@16: show_cpp_signatures_ = false; Chris@16: } Chris@16: Chris@16: void Chris@16: enable_cpp_signatures() Chris@16: { Chris@16: show_cpp_signatures_ = true; Chris@16: } Chris@16: Chris@16: void Chris@16: disable_signatures() Chris@16: { Chris@16: show_cpp_signatures_ = false; Chris@16: show_py_signatures_ = false; Chris@16: } Chris@16: Chris@16: void Chris@16: enable_signatures() Chris@16: { Chris@16: show_cpp_signatures_ = true; Chris@16: show_py_signatures_ = true; Chris@16: } Chris@16: Chris@16: void Chris@16: disable_all() Chris@16: { Chris@16: show_user_defined_ = false; Chris@16: show_cpp_signatures_ = false; Chris@16: show_py_signatures_ = false; Chris@16: } Chris@16: Chris@16: void Chris@16: enable_all() Chris@16: { Chris@16: show_user_defined_ = true; Chris@16: show_cpp_signatures_ = true; Chris@16: show_py_signatures_ = true; Chris@16: } Chris@16: Chris@16: friend struct objects::function; Chris@16: Chris@16: private: Chris@16: static volatile bool show_user_defined_; Chris@16: static volatile bool show_cpp_signatures_; Chris@16: static volatile bool show_py_signatures_; Chris@16: bool previous_show_user_defined_; Chris@16: bool previous_show_cpp_signatures_; Chris@16: bool previous_show_py_signatures_; Chris@16: }; Chris@16: Chris@16: }} // namespace boost::python Chris@16: Chris@16: #endif // DOCSTRING_OPTIONS_RWGK20060111_HPP