[pygccxml-commit] SF.net SVN: pygccxml:[1464] pyplusplus_dev
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2008-12-09 20:30:13
|
Revision: 1464 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1464&view=rev Author: roman_yakovenko Date: 2008-12-09 20:30:09 +0000 (Tue, 09 Dec 2008) Log Message: ----------- making indexing suite v2 to be header only library Modified Paths: -------------- pyplusplus_dev/environment.py pyplusplus_dev/indexing_suite_v2/indexing_suite/algorithms.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/container_proxy.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/container_suite.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/container_traits.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/deque.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/element_proxy.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/element_proxy_traits.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/int_slice_helper.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/iterator_range.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/iterator_traits.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/list.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/map.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/methods.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/multimap.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/pair.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/proxy_iterator.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/python_iterator.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/set.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/shared_proxy_impl.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/slice.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/slice_handler.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/suite_utils.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/value_traits.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/vector.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/visitor.hpp pyplusplus_dev/indexing_suite_v2/indexing_suite/workaround.hpp pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py pyplusplus_dev/pyplusplus/code_repository/return_range.py pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite2.py pyplusplus_dev/unittests/autoconfig.py Modified: pyplusplus_dev/environment.py =================================================================== --- pyplusplus_dev/environment.py 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/environment.py 2008-12-09 20:30:09 UTC (rev 1464) @@ -4,6 +4,9 @@ this_module_dir_path = os.path.abspath ( os.path.dirname( sys.modules[__name__].__file__) ) +class indexing_suite: + include = os.path.join( this_module_dir_path, 'indexing_suite_v2' ) + class boost: libs = '' include = '' Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/algorithms.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/algorithms.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/algorithms.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -13,6 +13,7 @@ // 2003/ 9/11 rmg File creation from suite_utils.hpp // 2003/10/28 rmg Split container-specific versions into separate headers // 2006/10/25 Roman Adding keys function to assoc_algorithms class +// 2008/12/08 Roman Change indexing suite layout // // $Id: algorithms.hpp,v 1.1.2.15 2004/02/08 18:57:42 raoulgough Exp $ // @@ -20,12 +21,12 @@ #ifndef BOOST_PYTHON_INDEXING_ALGORITHMS_HPP #define BOOST_PYTHON_INDEXING_ALGORITHMS_HPP -#include <boost/python/suite/indexing/suite_utils.hpp> +#include <indexing_suite/suite_utils.hpp> #include <boost/type_traits.hpp> #include <boost/python/errors.hpp> -#include <boost/python/suite/indexing/int_slice_helper.hpp> -#include <boost/python/suite/indexing/slice.hpp> +#include <indexing_suite/int_slice_helper.hpp> +#include <indexing_suite/slice.hpp> #include <boost/mpl/if.hpp> #include <boost/limits.hpp> #include <algorithm> @@ -158,7 +159,7 @@ ContainerTraits::visit_container_class (pyClass, policy); } - + protected: static iterator find_or_throw (container &, index_param); }; @@ -214,7 +215,7 @@ { throw std::out_of_range (msg); } - + result = bound + ix; } Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/container_proxy.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/container_proxy.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/container_proxy.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -21,6 +21,7 @@ // ======= // 2003/ 8/26 rmg File creation // 2003/10/23 rmg Change pointer container from map to sequence +// 2008/12/08 Roman Change indexing suite layout // // $Id: container_proxy.hpp,v 1.1.2.28 2004/02/08 18:57:42 raoulgough Exp $ // @@ -28,21 +29,21 @@ #ifndef BOOST_PYTHON_INDEXING_CONTAINER_PROXY_HPP #define BOOST_PYTHON_INDEXING_CONTAINER_PROXY_HPP -#include <boost/python/suite/indexing/proxy_iterator.hpp> -#include <boost/python/suite/indexing/shared_proxy_impl.hpp> -#include <boost/python/suite/indexing/element_proxy.hpp> -#include <boost/python/suite/indexing/element_proxy_traits.hpp> -#include <boost/python/suite/indexing/workaround.hpp> -#include <boost/python/suite/indexing/methods.hpp> +#include <indexing_suite/proxy_iterator.hpp> +#include <indexing_suite/shared_proxy_impl.hpp> +#include <indexing_suite/element_proxy.hpp> +#include <indexing_suite/element_proxy_traits.hpp> +#include <indexing_suite/workaround.hpp> +#include <indexing_suite/methods.hpp> #include <vector> #include <cassert> #include <boost/shared_ptr.hpp> #include <boost/mpl/apply.hpp> #include <boost/iterator/iterator_traits.hpp> -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> namespace boost { namespace python { namespace indexing { Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/container_suite.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/container_suite.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/container_suite.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -12,6 +12,7 @@ // ======= // 2003/ 8/23 rmg File creation // 2003/ 9/ 8 rmg Extracted trait facilities into container_traits.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: container_suite.hpp,v 1.1.2.7 2004/02/08 18:57:42 raoulgough Exp $ // @@ -19,9 +20,9 @@ #ifndef BOOST_PYTHON_INDEXING_CONTAINER_SUITE_HPP #define BOOST_PYTHON_INDEXING_CONTAINER_SUITE_HPP -#include <boost/python/suite/indexing/methods.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> -#include <boost/python/suite/indexing/visitor.hpp> +#include <indexing_suite/methods.hpp> +#include <indexing_suite/algorithms.hpp> +#include <indexing_suite/visitor.hpp> #include <boost/python/return_by_value.hpp> #include <boost/python/return_value_policy.hpp> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/container_traits.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/container_traits.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/container_traits.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -15,6 +15,7 @@ // 2003/ 9/ 8 rmg Renamed container_traits.hpp // 2003/10/28 rmg Split container-specific versions into separate headers // 2004/ 1/28 rmg Convert to bitset-based feature selection +// 2008/12/08 Roman Change indexing suite layout // // $Id: container_traits.hpp,v 1.1.2.15 2004/02/08 18:57:42 raoulgough Exp $ // @@ -22,9 +23,9 @@ #ifndef BOOST_PYTHON_INDEXING_CONTAINER_TRAITS_HPP #define BOOST_PYTHON_INDEXING_CONTAINER_TRAITS_HPP -#include <boost/python/suite/indexing/suite_utils.hpp> -#include <boost/python/suite/indexing/methods.hpp> -#include <boost/python/suite/indexing/value_traits.hpp> +#include <indexing_suite/suite_utils.hpp> +#include <indexing_suite/methods.hpp> +#include <indexing_suite/value_traits.hpp> #include <boost/type_traits.hpp> #include <boost/call_traits.hpp> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/deque.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/deque.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/deque.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2003/10/28 rmg File creation from algo_selector.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: deque.hpp,v 1.1.2.6 2004/02/08 18:57:42 raoulgough Exp $ // @@ -18,9 +19,9 @@ #ifndef BOOST_PYTHON_INDEXING_DEQUE_HPP #define BOOST_PYTHON_INDEXING_DEQUE_HPP -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> #include <deque> namespace boost { namespace python { namespace indexing { Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/element_proxy.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/element_proxy.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/element_proxy.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -12,6 +12,7 @@ // History // ======= // 2003/ 9/15 rmg File creation from container_proxy.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: element_proxy.hpp,v 1.1.2.10 2003/12/03 12:18:51 raoulgough Exp $ // @@ -19,7 +20,7 @@ #ifndef BOOST_PYTHON_INDEXING_ELEMENT_PROXY_HPP #define BOOST_PYTHON_INDEXING_ELEMENT_PROXY_HPP -#include <boost/python/suite/indexing/shared_proxy_impl.hpp> +#include <indexing_suite/shared_proxy_impl.hpp> #include <boost/shared_ptr.hpp> #include <boost/get_pointer.hpp> #include <boost/utility/addressof.hpp> @@ -168,7 +169,7 @@ #ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP }} // namespace python::indexing -#endif +#endif template<typename ContainerProxy> typename ContainerProxy::raw_value_type * @@ -181,7 +182,7 @@ // Don't hide these other get_pointer overloads using boost::get_pointer; }} // namespace python::indexing -#endif +#endif } #endif // BOOST_PYTHON_INDEXING_ELEMENT_PROXY_HPP Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/element_proxy_traits.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/element_proxy_traits.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/element_proxy_traits.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -17,6 +17,7 @@ // History // ======= // 2003/10/23 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: element_proxy_traits.hpp,v 1.1.2.5 2003/12/05 17:36:14 raoulgough Exp $ // @@ -24,8 +25,8 @@ #ifndef BOOST_PYTHON_INDEXING_ELEMENT_PROXY_TRAITS_HPP #define BOOST_PYTHON_INDEXING_ELEMENT_PROXY_TRAITS_HPP -#include <boost/python/suite/indexing/element_proxy.hpp> -#include <boost/python/suite/indexing/value_traits.hpp> +#include <indexing_suite/element_proxy.hpp> +#include <indexing_suite/value_traits.hpp> #include <boost/python/register_ptr_to_python.hpp> #include <boost/python/implicit.hpp> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/int_slice_helper.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/int_slice_helper.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/int_slice_helper.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -9,6 +9,7 @@ // History // ======= // 2003/10/13 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: int_slice_helper.hpp,v 1.1.2.10 2004/02/08 18:57:42 raoulgough Exp $ // @@ -17,7 +18,7 @@ #define BOOST_PYTHON_INDEXING_INT_SLICE_HELPER_HPP # include <boost/python/errors.hpp> -# include <boost/python/suite/indexing/workaround.hpp> +# include <indexing_suite/workaround.hpp> namespace boost { namespace python { namespace indexing { template<typename Algorithms, typename SliceType> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/iterator_range.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/iterator_range.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/iterator_range.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -13,6 +13,7 @@ // ======= // 2003/ 9/ 9 rmg File creation as iterator_pair.hpp // 2003/10/27 rmg Renamed iterator_range.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: iterator_range.hpp,v 1.1.2.7 2004/02/08 18:57:42 raoulgough Exp $ // @@ -27,10 +28,10 @@ #include <boost/type_traits/ice.hpp> #include <boost/detail/workaround.hpp> #include <boost/iterator/iterator_traits.hpp> -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> -#include <boost/python/suite/indexing/iterator_traits.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> +#include <indexing_suite/iterator_traits.hpp> namespace boost { namespace python { namespace indexing { template<typename Iterator> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/iterator_traits.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/iterator_traits.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/iterator_traits.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -15,6 +15,7 @@ // ======= // 2003/ 8/23 rmg File creation as iterator_suite.hpp // 2003/ 9/12 rmg Renamed iterator_traits.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: iterator_traits.hpp,v 1.1.2.14 2004/02/08 18:57:42 raoulgough Exp $ // @@ -22,9 +23,9 @@ #ifndef BOOST_PYTHON_INDEXING_ITERATOR_TRAITS_HPP #define BOOST_PYTHON_INDEXING_ITERATOR_TRAITS_HPP -#include <boost/python/suite/indexing/suite_utils.hpp> -#include <boost/python/suite/indexing/methods.hpp> -//#include <boost/python/suite/indexing/workaround.hpp> +#include <indexing_suite/suite_utils.hpp> +#include <indexing_suite/methods.hpp> +//#include <indexing_suite/workaround.hpp> //#include <boost/call_traits.hpp> //#include <boost/type_traits.hpp> @@ -154,7 +155,7 @@ forward_iter_sizer &sizer (std::forward_iterator_tag *); bidirectional_iter_sizer &sizer (std::bidirectional_iterator_tag *); random_access_iter_sizer &sizer (std::random_access_iterator_tag *); - + template<size_t Size> struct traits_by_size { // Default implementation gives only the most basic support template<typename Iterator> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/list.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/list.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/list.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2003/10/28 rmg File creation from algo_selector.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: list.hpp,v 1.1.2.7 2004/02/08 18:57:42 raoulgough Exp $ // @@ -18,9 +19,9 @@ #ifndef BOOST_PYTHON_INDEXING_LIST_HPP #define BOOST_PYTHON_INDEXING_LIST_HPP -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> #include <list> #if BOOST_WORKAROUND (BOOST_MSVC, == 1200) Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/map.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/map.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/map.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2003/10/28 rmg File creation from algo_selector.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: map.hpp,v 1.1.2.6 2004/02/08 18:57:42 raoulgough Exp $ // @@ -18,12 +19,12 @@ #ifndef BOOST_PYTHON_INDEXING_MAP_HPP #define BOOST_PYTHON_INDEXING_MAP_HPP -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> #include <boost/detail/workaround.hpp> #include <map> -#include <boost/python/suite/indexing/pair.hpp> +#include <indexing_suite/pair.hpp> namespace boost { namespace python { namespace indexing { ///////////////////////////////////////////////////////////////////////// @@ -98,22 +99,22 @@ // Version to return only the mapped type static boost::python::list keys( container & ); - + static void assign (container &, index_param, value_param); static void insert (container &, index_param, value_param); - + template<typename PythonClass, typename Policy> static void visit_container_class( PythonClass &pyClass, Policy const &policy) { ContainerTraits::visit_container_class (pyClass, policy); - pyClass.def( "keys", &self_type::keys ); - + pyClass.def( "keys", &self_type::keys ); + typedef BOOST_DEDUCED_TYPENAME most_derived::container::value_type value_type; mapping::register_value_type< PythonClass, value_type, Policy >( pyClass ); //now we can expose iterators functionality pyClass.def( "__iter__", python::iterator< BOOST_DEDUCED_TYPENAME most_derived::container >() ); - } - + } + }; #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) @@ -175,7 +176,7 @@ return most_derived::find_or_throw (c, ix)->second; } - + template<typename ContainerTraits, typename Ovr> boost::python::list map_algorithms<ContainerTraits, Ovr>::keys( container &c ) @@ -192,10 +193,10 @@ } //} } - + return _keys; } - + ///////////////////////////////////////////////////////////////////////// // Assign a value at a particular index (map version) ///////////////////////////////////////////////////////////////////////// Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/methods.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/methods.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/methods.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2004/ 1/11 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: methods.hpp,v 1.1.2.1 2004/02/08 18:57:42 raoulgough Exp $ // Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/multimap.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/multimap.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/multimap.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -9,18 +9,19 @@ // History // ======= // 2006/10/27 Roman File creation from map.hpp +// 2008/12/08 Roman Change indexing suite layout // #ifndef BOOST_PYTHON_INDEXING_MULTIMAP_HPP #define BOOST_PYTHON_INDEXING_MULTIMAP_HPP -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> #include <boost/detail/workaround.hpp> #include <functional> #include <map> -#include <boost/python/suite/indexing/pair.hpp> +#include <indexing_suite/pair.hpp> namespace boost { namespace python { namespace indexing { ///////////////////////////////////////////////////////////////////////// @@ -95,23 +96,23 @@ // Version to return only the mapped type static boost::python::list keys( container & ); - + static void assign (container &, index_param, value_param); static void insert (container &, index_param, value_param); - + template<typename PythonClass, typename Policy> static void visit_container_class( PythonClass &pyClass, Policy const &policy) { ContainerTraits::visit_container_class (pyClass, policy); - pyClass.def( "keys", &self_type::keys ); + pyClass.def( "keys", &self_type::keys ); typedef BOOST_DEDUCED_TYPENAME most_derived::container::value_type value_type; mapping::register_value_type< PythonClass, value_type, Policy >( pyClass ); //now we can expose iterators functionality pyClass.def( "__iter__", python::iterator< BOOST_DEDUCED_TYPENAME most_derived::container >() ); - - } + } + }; template< @@ -157,11 +158,11 @@ } //} } - + return _keys; } - - + + ///////////////////////////////////////////////////////////////////////// // Assign a value at a particular index (map version) ///////////////////////////////////////////////////////////////////////// Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/pair.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/pair.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/pair.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -2,7 +2,7 @@ // // Exposes std::pair< key, value > class // -// Copyright (c) 2007 Roman Yakovenko +// Copyright (c) 2007 Roman Yakovenko // // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy @@ -11,29 +11,30 @@ // History // ======= // 2007/2/11 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // #ifndef BOOST_PYTHON_STD_PAIR_KEY_VALUE_11_02_2007_HPP #define BOOST_PYTHON_STD_PAIR_KEY_VALUE_11_02_2007_HPP #include <boost/config.hpp> -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> #include <boost/detail/workaround.hpp> namespace boost { namespace python { namespace indexing { namespace mapping{ namespace details{ - + template< typename TValueType, typename TValueCallPolicies > struct pair_exposer_t{ - typedef TValueType pair_type; + typedef TValueType pair_type; typedef BOOST_DEDUCED_TYPENAME pair_type::first_type key_type; typedef BOOST_DEDUCED_TYPENAME pair_type::second_type mapped_type; typedef pair_exposer_t< TValueType, TValueCallPolicies > exposer_type; - + pair_exposer_t(const std::string& name){ class_< pair_type >( name.c_str() ) .def( "__len__", &exposer_type::len ) @@ -41,7 +42,7 @@ .add_property( "key", &exposer_type::get_key ) .add_property( "value", &exposer_type::get_mapped ); } - + private: static size_t len( const pair_type& ){ @@ -67,32 +68,32 @@ } } } - + static object get_key( const pair_type& p ){ return object( p.first ); } - + static object get_mapped( pair_type& p ){ typedef BOOST_DEDUCED_TYPENAME TValueCallPolicies::result_converter rc_type; typedef BOOST_DEDUCED_TYPENAME rc_type:: template apply< mapped_type >::type converter_type; converter_type converter; return object( handle<>( converter( p.second ) ) ); } - + }; } //details - + template< typename TPythonClass, typename TValueType, typename TValueCallPolicies > -inline void register_value_type(TPythonClass &pyClass){ +inline void register_value_type(TPythonClass &pyClass){ typedef details::pair_exposer_t< TValueType, TValueCallPolicies > exposer_type; - + object class_name(pyClass.attr("__name__")); extract<std::string> class_name_extractor(class_name); std::string pair_name = class_name_extractor() + "_entry"; - + exposer_type expose( pair_name ); } - + } } } } #endif // BOOST_PYTHON_STD_PAIR_KEY_VALUE_11_02_2007_HPP Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/proxy_iterator.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/proxy_iterator.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/proxy_iterator.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -10,6 +10,7 @@ // History // ======= // 2003/10/ 8 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: proxy_iterator.hpp,v 1.1.2.8 2003/12/05 17:36:14 raoulgough Exp $ // @@ -63,7 +64,7 @@ : ptr (p), index (i) { } - + proxy_iterator (container_proxy_type *p, raw_iterator iter) : ptr (p), index (iter - p->raw_container().begin()) { Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/python_iterator.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/python_iterator.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/python_iterator.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -13,6 +13,7 @@ // History // ======= // 2003/ 9/10 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: python_iterator.hpp,v 1.1.2.5 2003/11/24 16:35:09 raoulgough Exp $ // Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/set.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/set.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/set.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2003/10/28 rmg File creation from algo_selector.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: set.hpp,v 1.1.2.6 2004/02/08 18:57:42 raoulgough Exp $ // @@ -18,9 +19,9 @@ #ifndef BOOST_PYTHON_INDEXING_SET_HPP #define BOOST_PYTHON_INDEXING_SET_HPP -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> #include <boost/type_traits/is_const.hpp> #include <set> @@ -85,13 +86,13 @@ typedef typename Parent::index_param index_param; static void insert (container &, index_param); - + template<typename PythonClass, typename Policy> static void visit_container_class( PythonClass &pyClass, Policy const &policy) { ContainerTraits::visit_container_class (pyClass, policy); - pyClass.def( "add", &self_type::insert ); - } + pyClass.def( "add", &self_type::insert ); + } }; Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/shared_proxy_impl.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/shared_proxy_impl.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/shared_proxy_impl.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -16,6 +16,7 @@ // History // ======= // 2003/ 8/29 rmg File creation from container_proxy.hh +// 2008/12/08 Roman Change indexing suite layout // // $Id: shared_proxy_impl.hpp,v 1.1.2.8 2003/11/24 14:28:31 raoulgough Exp $ // @@ -24,7 +25,7 @@ #define BOOST_PYTHON_INDEXING_SHARED_PROXY_IMPL_HPP #include <memory> -#include <boost/python/suite/indexing/workaround.hpp> +#include <indexing_suite/workaround.hpp> namespace boost { namespace python { namespace indexing { template<class ContainerProxy> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/slice.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/slice.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/slice.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -9,6 +9,7 @@ // History // ======= // 2003/ 9/10 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: slice.hpp,v 1.1.2.10 2003/11/24 14:28:31 raoulgough Exp $ // Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/slice_handler.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/slice_handler.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/slice_handler.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2003/ 9/ 9 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: slice_handler.hpp,v 1.1.2.10 2003/11/24 16:35:52 raoulgough Exp $ // @@ -26,8 +27,8 @@ #include <boost/mpl/apply.hpp> #include <algorithm> -#include <boost/python/suite/indexing/slice.hpp> -#include <boost/python/suite/indexing/python_iterator.hpp> +#include <indexing_suite/slice.hpp> +#include <indexing_suite/python_iterator.hpp> namespace boost { namespace python { namespace indexing { template<class Algorithms, class Policy> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/suite_utils.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/suite_utils.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/suite_utils.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2003/ 8/23 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: suite_utils.hpp,v 1.1.2.7 2003/11/24 14:28:31 raoulgough Exp $ // Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/value_traits.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/value_traits.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/value_traits.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -12,6 +12,7 @@ // History // ======= // 2003/ 9/12 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: value_traits.hpp,v 1.1.2.6 2003/12/05 17:36:12 raoulgough Exp $ // Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/vector.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/vector.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/vector.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2003/10/28 rmg File creation from algo_selector.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: vector.hpp,v 1.1.2.6 2004/02/08 18:57:42 raoulgough Exp $ // @@ -18,9 +19,9 @@ #ifndef BOOST_PYTHON_INDEXING_VECTOR_HPP #define BOOST_PYTHON_INDEXING_VECTOR_HPP -#include <boost/python/suite/indexing/container_traits.hpp> -#include <boost/python/suite/indexing/container_suite.hpp> -#include <boost/python/suite/indexing/algorithms.hpp> +#include <indexing_suite/container_traits.hpp> +#include <indexing_suite/container_suite.hpp> +#include <indexing_suite/algorithms.hpp> #include <vector> namespace boost { namespace python { namespace indexing { Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/visitor.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/visitor.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/visitor.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -12,6 +12,7 @@ // History // ======= // 2003/ 9/11 rmg File creation from container_suite.hpp +// 2008/12/08 Roman Change indexing suite layout // // $Id: visitor.hpp,v 1.1.2.16 2004/02/08 18:57:42 raoulgough Exp $ // @@ -19,8 +20,8 @@ #ifndef BOOST_PYTHON_INDEXING_VISITOR_HPP #define BOOST_PYTHON_INDEXING_VISITOR_HPP -#include <boost/python/suite/indexing/slice_handler.hpp> -#include <boost/python/suite/indexing/suite_utils.hpp> // Get index_style_t +#include <indexing_suite/slice_handler.hpp> +#include <indexing_suite/suite_utils.hpp> // Get index_style_t #include <boost/python/def_visitor.hpp> #include <boost/python/iterator.hpp> Modified: pyplusplus_dev/indexing_suite_v2/indexing_suite/workaround.hpp =================================================================== --- pyplusplus_dev/indexing_suite_v2/indexing_suite/workaround.hpp 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/indexing_suite_v2/indexing_suite/workaround.hpp 2008-12-09 20:30:09 UTC (rev 1464) @@ -11,6 +11,7 @@ // History // ======= // 2003/10/21 rmg File creation +// 2008/12/08 Roman Change indexing suite layout // // $Id: workaround.hpp,v 1.1.2.3 2003/11/17 19:27:13 raoulgough Exp $ // Modified: pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py 2008-12-09 20:30:09 UTC (rev 1464) @@ -18,7 +18,7 @@ declaration_based.declaration_based_t.__init__( self, declaration=container ) @property - def configuration( self ): + def configuration( self ): return self.declaration.indexing_suite @property @@ -46,12 +46,12 @@ args.append( no_proxy) return declarations.templates.join( suite_identifier, args ) - def _create_impl(self): + def _create_impl(self): return "def( %s() )" % self._create_suite_declaration() def _get_system_headers_impl( self ): return self.configuration.include_files - + class indexing_suite2_t( registration_based.registration_based_t , declaration_based.declaration_based_t ): def __init__(self, container ): @@ -87,7 +87,7 @@ def _create_impl( self ): if self.declaration.already_exposed: return '' - + answer = [] if self.does_user_disable_methods(): answer.append( self.generate_algorithm_mask() ) @@ -172,10 +172,9 @@ #if self.declaration.already_exposed: # return '' #This is the error to skip generation in case the class is already exposed, - #because we still expose container, so it needs to know how to work with + #because we still expose container, so it needs to know how to work with #the value_type return self.generate_value_traits() def _get_system_headers_impl( self ): - return ['boost/python/suite/indexing/value_traits.hpp'] - \ No newline at end of file + return ['indexing_suite/value_traits.hpp'] Modified: pyplusplus_dev/pyplusplus/code_repository/return_range.py =================================================================== --- pyplusplus_dev/pyplusplus/code_repository/return_range.py 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/pyplusplus/code_repository/return_range.py 2008-12-09 20:30:09 UTC (rev 1464) @@ -25,28 +25,28 @@ #include "boost/python.hpp" #include "boost/mpl/int.hpp" #include "boost/function.hpp" -#include "boost/python/suite/indexing/iterator_range.hpp" +#include "indexing_suite/iterator_range.hpp" #include "boost/python/object/class_detail.hpp" #include "boost/type_traits/is_same.hpp" namespace pyplusplus{ namespace call_policies{ namespace bpl = boost::python; -namespace detail{ +namespace detail{ struct return_raw_data_ref{ - - template <class T> + + template <class T> struct apply{ BOOST_STATIC_ASSERT( boost::is_pointer<T>::value ); - + struct type{ static bool convertible() { return true; } - PyObject* - operator()( T return_value) const{ + PyObject* + operator()( T return_value) const{ if( !return_value ){ return bpl::detail::none(); } @@ -54,7 +54,7 @@ typedef typename boost::remove_pointer< T >::type value_type; typedef typename boost::remove_const< value_type >::type non_const_value_type; non_const_value_type* data = const_cast<non_const_value_type*>( return_value ); - return PyCObject_FromVoidPtr( data, NULL ); + return PyCObject_FromVoidPtr( data, NULL ); } } }; @@ -64,8 +64,8 @@ }; } //detail - -template < typename TGetSize, typename TValueType, typename TValuePolicies=bpl::default_call_policies > + +template < typename TGetSize, typename TValueType, typename TValuePolicies=bpl::default_call_policies > struct return_range : bpl::default_call_policies{ typedef return_range< TGetSize, TValueType, TValuePolicies > this_type; @@ -73,11 +73,11 @@ public: typedef typename detail::return_raw_data_ref result_converter; - + typedef TValueType value_type; typedef TGetSize get_size_type; typedef TValuePolicies value_policies_type; - + typedef bpl::indexing::iterator_range<value_type*> range_type; template <class ArgumentPackage> @@ -90,16 +90,16 @@ } value_type* raw_data = reinterpret_cast<value_type*>( PyCObject_AsVoidPtr( result ) ); Py_DECREF(result);//we don't need result anymore - + bpl::tuple args_w( bpl::handle<>( bpl::borrowed( args ) ) ); register_range_class_on_demand(); - + get_size_type get_size; range_type the_range( raw_data, raw_data + get_size( args_w ) ); - + bpl::object range_obj( the_range ); - + return bpl::incref( range_obj.ptr() ); } private: @@ -109,11 +109,11 @@ bpl::class_<range_type>( "_impl_details_range_iterator_", bpl::init<value_type*, value_type*>() ) .def(bpl::indexing::container_suite<range_type>() ); } - + static void register_range_class( boost::mpl::false_ ){ //register range class with non default call policies - unsigned long const methods_mask - = bpl::indexing::all_methods + unsigned long const methods_mask + = bpl::indexing::all_methods & ~( bpl::indexing::reorder_methods | bpl::indexing::search_methods ) ; typedef bpl::indexing::iterator_range_suite< range_type, methods_mask > suite_type; @@ -125,7 +125,7 @@ //Check the registry. If the class doesn't exist, register it. bpl::handle<> class_obj( bpl::objects::registered_class_object(bpl::type_id<range_type>())); - + if( class_obj.get() == 0 ){ register_range_class( boost::is_same< bpl::default_call_policies, value_policies_type>() ); } Modified: pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite2.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite2.py 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite2.py 2008-12-09 20:30:09 UTC (rev 1464) @@ -34,14 +34,14 @@ containers = { - 'vector' : "boost/python/suite/indexing/vector.hpp" - , 'deque' : "boost/python/suite/indexing/deque.hpp" - , 'list' : "boost/python/suite/indexing/list.hpp" - , 'map' : "boost/python/suite/indexing/map.hpp" - , 'multimap' : "boost/python/suite/indexing/multimap.hpp" - , 'hash_map' : "boost/python/suite/indexing/map.hpp" - , 'set' : "boost/python/suite/indexing/set.hpp" - , 'hash_set' : "boost/python/suite/indexing/set.hpp" + 'vector' : "indexing_suite/vector.hpp" + , 'deque' : "indexing_suite/deque.hpp" + , 'list' : "indexing_suite/list.hpp" + , 'map' : "indexing_suite/map.hpp" + , 'multimap' : "indexing_suite/multimap.hpp" + , 'hash_map' : "indexing_suite/map.hpp" + , 'set' : "indexing_suite/set.hpp" + , 'hash_set' : "indexing_suite/set.hpp" #TODO: queue, priority, stack, hash_multimap, multiset, hash_multiset } @@ -91,7 +91,7 @@ def element_type(self): """reference to container value_type( mapped_type ) type""" return self.container_traits.element_type( self.container_class ) - + @property def container_traits( self ): "reference to container traits. See pygccxml documentation for more information." @@ -174,6 +174,6 @@ self.__include_files = [] #not supported else: #impl details: the order of header files is IMPORTANT - self.__include_files = [ "boost/python/suite/indexing/container_suite.hpp" + self.__include_files = [ "indexing_suite/container_suite.hpp" , containers[ name ] ] return self.__include_files Modified: pyplusplus_dev/unittests/autoconfig.py =================================================================== --- pyplusplus_dev/unittests/autoconfig.py 2008-12-08 21:36:39 UTC (rev 1463) +++ pyplusplus_dev/unittests/autoconfig.py 2008-12-09 20:30:09 UTC (rev 1464) @@ -15,16 +15,16 @@ data_directory = os.path.join( this_module_dir_path, 'data' ) build_directory = os.path.join( this_module_dir_path, 'temp' ) -build_dir = build_directory +build_dir = build_directory sys.path.append( os.path.dirname( this_module_dir_path ) ) -from environment import scons, boost, python, gccxml +from environment import scons, boost, python, gccxml, indexing_suite class scons_config: libs = ['boost_python'] libpath = [ python.libs ] + boost.libs - cpppath = [ boost.include, python.include ] + cpppath = [ boost.include, python.include, indexing_suite.include ] include_dirs = cpppath + [data_directory] @staticmethod @@ -40,7 +40,7 @@ , " , SHLIBPREFIX=''" , " , SHLIBSUFFIX='%s'" % scons.suffix #explicit better then implicit , ")" - , "env.AddPostAction('%(target)s', 'mt.exe -nologo -manifest %(target)s.pyd.manifest -outputresource:%(target)s.pyd;2' )" ] + , "env.AddPostAction('%(target)s', 'mt.exe -nologo -manifest %(target)s.pyd.manifest -outputresource:%(target)s.pyd;2' )" ] return os.linesep.join( code ) #I need this in order to allow Python to load just compiled modules This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |