| // Copyright Ralf W. Grosse-Kunstleve 2006. |
| // Distributed under 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) |
| #ifndef DOCSTRING_OPTIONS_RWGK20060111_HPP |
| # define DOCSTRING_OPTIONS_RWGK20060111_HPP |
| |
| #include <boost/python/object/function.hpp> |
| |
| namespace boost { namespace python { |
| |
| // Note: the static data members are defined in object/function.cpp |
| |
| class BOOST_PYTHON_DECL docstring_options : boost::noncopyable |
| { |
| public: |
| docstring_options(bool show_all=true) |
| { |
| previous_show_user_defined_ = show_user_defined_; |
| previous_show_py_signatures_ = show_py_signatures_; |
| previous_show_cpp_signatures_ = show_cpp_signatures_; |
| show_user_defined_ = show_all; |
| show_cpp_signatures_ = show_all; |
| show_py_signatures_ = show_all; |
| } |
| |
| docstring_options(bool show_user_defined, bool show_signatures) |
| { |
| previous_show_user_defined_ = show_user_defined_; |
| previous_show_cpp_signatures_ = show_cpp_signatures_; |
| previous_show_py_signatures_ = show_py_signatures_; |
| show_user_defined_ = show_user_defined; |
| show_cpp_signatures_ = show_signatures; |
| show_py_signatures_ = show_signatures; |
| } |
| |
| docstring_options(bool show_user_defined, bool show_py_signatures, bool show_cpp_signatures) |
| { |
| previous_show_user_defined_ = show_user_defined_; |
| previous_show_cpp_signatures_ = show_cpp_signatures_; |
| previous_show_py_signatures_ = show_py_signatures_; |
| show_user_defined_ = show_user_defined; |
| show_cpp_signatures_ = show_cpp_signatures; |
| show_py_signatures_ = show_py_signatures; |
| } |
| |
| ~docstring_options() |
| { |
| show_user_defined_ = previous_show_user_defined_; |
| show_cpp_signatures_ = previous_show_cpp_signatures_; |
| show_py_signatures_ = previous_show_py_signatures_; |
| } |
| |
| void |
| disable_user_defined() { show_user_defined_ = false; } |
| |
| void |
| enable_user_defined() { show_user_defined_ = true; } |
| |
| void |
| disable_py_signatures() |
| { |
| show_py_signatures_ = false; |
| } |
| |
| void |
| enable_py_signatures() |
| { |
| show_py_signatures_ = true; |
| } |
| |
| void |
| disable_cpp_signatures() |
| { |
| show_cpp_signatures_ = false; |
| } |
| |
| void |
| enable_cpp_signatures() |
| { |
| show_cpp_signatures_ = true; |
| } |
| |
| void |
| disable_signatures() |
| { |
| show_cpp_signatures_ = false; |
| show_py_signatures_ = false; |
| } |
| |
| void |
| enable_signatures() |
| { |
| show_cpp_signatures_ = true; |
| show_py_signatures_ = true; |
| } |
| |
| void |
| disable_all() |
| { |
| show_user_defined_ = false; |
| show_cpp_signatures_ = false; |
| show_py_signatures_ = false; |
| } |
| |
| void |
| enable_all() |
| { |
| show_user_defined_ = true; |
| show_cpp_signatures_ = true; |
| show_py_signatures_ = true; |
| } |
| |
| friend struct objects::function; |
| |
| private: |
| static volatile bool show_user_defined_; |
| static volatile bool show_cpp_signatures_; |
| static volatile bool show_py_signatures_; |
| bool previous_show_user_defined_; |
| bool previous_show_cpp_signatures_; |
| bool previous_show_py_signatures_; |
| }; |
| |
| }} // namespace boost::python |
| |
| #endif // DOCSTRING_OPTIONS_RWGK20060111_HPP |