128 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
		
		
			
		
	
	
			128 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
|  | // 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
 |