1# Copyright 2004-2008 Roman Yakovenko.
2# Distributed under the Boost Software License, Version 1.0. (See
3# accompanying file LICENSE_1_0.txt or copy at
4# http://www.boost.org/LICENSE_1_0.txt)
5
6"""Code generator configuration classes
7
8:mod:`pygccxml.declarations` package contains classes, which describe C++ declarations.
9This package contains classes that derive from the :mod:`pygccxml.declarations` classes.
10The classes in this package allow you to configure the code generator.
11"""
12
13from . import algorithm
14
15from .decl_wrapper import CODE_GENERATOR_TYPES
16from .decl_wrapper import decl_wrapper_t
17
18from .calldef_wrapper import calldef_t
19from .calldef_wrapper import member_function_t
20from .calldef_wrapper import constructor_t
21from .calldef_wrapper import destructor_t
22from .calldef_wrapper import member_operator_t
23from .calldef_wrapper import casting_operator_t
24from .calldef_wrapper import free_function_t
25from .calldef_wrapper import free_operator_t
26
27from .class_wrapper import class_declaration_t
28from .class_wrapper import class_t
29
30from .enumeration_wrapper import enumeration_t
31
32from .namespace_wrapper import namespace_t
33
34from .typedef_wrapper import typedef_t
35
36from .variable_wrapper import variable_t
37
38from .scopedef_wrapper import scopedef_t
39
40from pygccxml import declarations
41
42from .call_policies import call_policy_t
43from .call_policies import default_call_policies_t
44from .call_policies import default_call_policies
45from .call_policies import compound_policy_t
46from .call_policies import return_argument_t
47from .call_policies import return_arg
48from .call_policies import return_self
49from .call_policies import return_internal_reference_t
50from .call_policies import return_internal_reference
51from .call_policies import with_custodian_and_ward_t
52from .call_policies import with_custodian_and_ward
53from .call_policies import with_custodian_and_ward_postcall_t
54from .call_policies import with_custodian_and_ward_postcall
55from .call_policies import return_value_policy_t
56from .call_policies import copy_const_reference
57from .call_policies import copy_non_const_reference
58from .call_policies import manage_new_object
59from .call_policies import reference_existing_object
60from .call_policies import return_by_value
61from .call_policies import return_opaque_pointer
62from .call_policies import return_value_policy
63from .call_policies import return_pointee_value
64from .call_policies import return_addressof
65from .call_policies import is_return_opaque_pointer_policy
66from .call_policies import custom_call_policies_t
67from .call_policies import custom_call_policies
68from .call_policies import convert_array_to_tuple_t
69from .call_policies import convert_array_to_tuple
70from .call_policies import memory_managers
71from .call_policies import return_range
72from .call_policies import return_range_t
73
74from .decl_wrapper_printer import decl_wrapper_printer_t
75from .decl_wrapper_printer import print_declarations
76
77from .user_text import user_text_t
78from .user_text import class_user_text_t
79
80from .indexing_suite1 import indexing_suite1_t
81from .indexing_suite2 import indexing_suite2_t
82
83from .doc_extractor import doc_extractor_i
84
85from .properties import property_t
86from .properties import property_recognizer_i
87from .properties import name_based_recognizer_t
88
89from . import python_traits
90
91class dwfactory_t( declarations.decl_factory_t ):
92    """declarations factory class"""
93    def __init__(self):
94        declarations.decl_factory_t.__init__(self)
95
96    def create_member_function( self, *arguments, **keywords ):
97        return member_function_t(*arguments, **keywords)
98
99    def create_constructor( self, *arguments, **keywords ):
100        return constructor_t(*arguments, **keywords)
101
102    def create_destructor( self, *arguments, **keywords ):
103        return destructor_t(*arguments, **keywords)
104
105    def create_member_operator( self, *arguments, **keywords ):
106        return member_operator_t(*arguments, **keywords)
107
108    def create_casting_operator( self, *arguments, **keywords ):
109        return casting_operator_t(*arguments, **keywords)
110
111    def create_free_function( self, *arguments, **keywords ):
112        return free_function_t(*arguments, **keywords)
113
114    def create_free_operator( self, *arguments, **keywords ):
115        return free_operator_t(*arguments, **keywords)
116
117    def create_class_declaration(self, *arguments, **keywords ):
118        return class_declaration_t(*arguments, **keywords)
119
120    def create_class( self, *arguments, **keywords ):
121        return class_t(*arguments, **keywords)
122
123    def create_enumeration( self, *arguments, **keywords ):
124        return enumeration_t(*arguments, **keywords)
125
126    def create_namespace( self, *arguments, **keywords ):
127        return namespace_t(*arguments, **keywords)
128
129    def create_typedef( self, *arguments, **keywords ):
130        return typedef_t(*arguments, **keywords)
131
132    def create_variable( self, *arguments, **keywords ):
133        return variable_t(*arguments, **keywords)
134