56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | //  Copyright David Abrahams 2001. | ||
|  | // 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 REGISTRY_DWA20011127_HPP | ||
|  | # define REGISTRY_DWA20011127_HPP | ||
|  | # include <boost/python/type_id.hpp> | ||
|  | # include <boost/python/converter/to_python_function_type.hpp> | ||
|  | # include <boost/python/converter/rvalue_from_python_data.hpp> | ||
|  | # include <boost/python/converter/constructor_function.hpp> | ||
|  | # include <boost/python/converter/convertible_function.hpp> | ||
|  | 
 | ||
|  | namespace boost { namespace python { namespace converter { | ||
|  | 
 | ||
|  | struct registration; | ||
|  | 
 | ||
|  | // This namespace acts as a sort of singleton | ||
|  | namespace registry | ||
|  | { | ||
|  |   // Get the registration corresponding to the type, creating it if necessary | ||
|  |   BOOST_PYTHON_DECL registration const& lookup(type_info); | ||
|  | 
 | ||
|  |   // Get the registration corresponding to the type, creating it if | ||
|  |   // necessary.  Use this first when the type is a shared_ptr. | ||
|  |   BOOST_PYTHON_DECL registration const& lookup_shared_ptr(type_info); | ||
|  | 
 | ||
|  |   // Return a pointer to the corresponding registration, if one exists | ||
|  |   BOOST_PYTHON_DECL registration const* query(type_info); | ||
|  |    | ||
|  |   BOOST_PYTHON_DECL void insert(to_python_function_t, type_info, PyTypeObject const* (*to_python_target_type)() = 0); | ||
|  | 
 | ||
|  |   // Insert an lvalue from_python converter | ||
|  |   BOOST_PYTHON_DECL void insert(convertible_function, type_info, PyTypeObject const* (*expected_pytype)() = 0); | ||
|  | 
 | ||
|  |   // Insert an rvalue from_python converter | ||
|  |   BOOST_PYTHON_DECL void insert( | ||
|  |       convertible_function | ||
|  |       , constructor_function | ||
|  |       , type_info | ||
|  |       , PyTypeObject const* (*expected_pytype)()  = 0 | ||
|  |       ); | ||
|  |    | ||
|  |   // Insert an rvalue from_python converter at the tail of the | ||
|  |   // chain. Used for implicit conversions | ||
|  |   BOOST_PYTHON_DECL void push_back( | ||
|  |       convertible_function | ||
|  |       , constructor_function | ||
|  |       , type_info | ||
|  |       , PyTypeObject const* (*expected_pytype)()  = 0 | ||
|  |       ); | ||
|  | } | ||
|  | 
 | ||
|  | }}} // namespace boost::python::converter | ||
|  | 
 | ||
|  | #endif // REGISTRY_DWA20011127_HPP |