Revision: 237
Author: roman_yakovenko
Date: 2006-06-20 05:48:20 -0700 (Tue, 20 Jun 2006)
ViewCVS: http://svn.sourceforge.net/pygccxml/?rev=237&view=rev
Log Message:
-----------
adding support to std::list
Modified Paths:
--------------
pygccxml_dev/pygccxml/declarations/__init__.py
pygccxml_dev/pygccxml/declarations/container_traits.py
pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py
pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite.py
pyplusplus_dev/pyplusplus/module_creator/types_database.py
Modified: pygccxml_dev/pygccxml/declarations/__init__.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/__init__.py 2006-06-20 05:45:54 UTC (rev 236)
+++ pygccxml_dev/pygccxml/declarations/__init__.py 2006-06-20 12:48:20 UTC (rev 237)
@@ -151,6 +151,7 @@
from type_traits import smart_pointer_traits
from container_traits import vector_traits
+from container_traits import list_traits
from container_traits import map_traits
from container_traits import multimap_traits
from container_traits import hash_map_traits
Modified: pygccxml_dev/pygccxml/declarations/container_traits.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/container_traits.py 2006-06-20 05:45:54 UTC (rev 236)
+++ pygccxml_dev/pygccxml/declarations/container_traits.py 2006-06-20 12:48:20 UTC (rev 237)
@@ -82,6 +82,7 @@
return xxx_traits
vector_traits = create_traits_class( 'vector', 0 )
+list_traits = create_traits_class( 'list', 0 )
map_traits = create_traits_class( 'map', 1 )
multimap_traits = create_traits_class( 'multimap', 1 )
hash_map_traits = create_traits_class( 'hash_map', 1 )
Modified: pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py
===================================================================
--- pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2006-06-20 05:45:54 UTC (rev 236)
+++ pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2006-06-20 12:48:20 UTC (rev 237)
@@ -11,7 +11,8 @@
def guess_indexing_suite( class_ ):
- if declarations.vector_traits.is_my_case( class_ ):
+ if declarations.vector_traits.is_my_case( class_ ) \
+ or declarations.list_traits.is_my_case( class_ ):
return container_suites.vector_suite_t( class_ )
if declarations.map_traits.is_my_case( class_ ) \
or declarations.hash_map_traits.is_my_case( class_ ):
Modified: pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite.py
===================================================================
--- pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite.py 2006-06-20 05:45:54 UTC (rev 236)
+++ pyplusplus_dev/pyplusplus/decl_wrappers/indexing_suite.py 2006-06-20 12:48:20 UTC (rev 237)
@@ -58,9 +58,12 @@
class vector_suite_t( indexing_suite_t ):
def __init__( self, cls ):
indexing_suite_t.__init__( self, cls )
+ self.__traits = declarations.vector_traits
+ if declarations.list_traits.is_my_case( self.container_class ):
+ self.__traits = declarations.list_traits
def value_type( self ):
- return declarations.vector_traits.value_type( self.container_class )
+ return self.__traits.value_type( self.container_class )
class map_suite_t( indexing_suite_t ):
def __init__( self, cls ):
Modified: pyplusplus_dev/pyplusplus/module_creator/types_database.py
===================================================================
--- pyplusplus_dev/pyplusplus/module_creator/types_database.py 2006-06-20 05:45:54 UTC (rev 236)
+++ pyplusplus_dev/pyplusplus/module_creator/types_database.py 2006-06-20 12:48:20 UTC (rev 237)
@@ -60,7 +60,14 @@
vector = declarations.vector_traits.class_declaration( type )
declarations.vector_traits.value_type( vector )
self.__used_vectors.add( vector )
- return True
+ return True
+ #the patch I submitted should be accepted, before pyplusplus will generate
+ #the code
+ #~ if declarations.list_traits.is_my_case( type ):
+ #~ list_ = declarations.list_traits.class_declaration( type )
+ #~ declarations.list_traits.value_type( list_ )
+ #~ self.__used_vectors.add( list_ )
+ #~ return True
if declarations.map_traits.is_my_case( type ):
map_ = declarations.map_traits.class_declaration( type )
declarations.map_traits.value_type( map_ )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|