1 #ifndef _MONO_CLI_CLASS_H_
2 #define _MONO_CLI_CLASS_H_
4 #include <mono/metadata/metadata.h>
5 #include <mono/metadata/image.h>
6 #include <mono/metadata/loader.h>
7 #include <mono/utils/mono-error.h>
11 typedef struct MonoVTable MonoVTable
;
13 typedef struct _MonoClassField MonoClassField
;
14 typedef struct _MonoProperty MonoProperty
;
15 typedef struct _MonoEvent MonoEvent
;
18 mono_class_get (MonoImage
*image
, uint32_t type_token
);
21 mono_class_get_full (MonoImage
*image
, uint32_t type_token
, MonoGenericContext
*context
);
24 mono_class_init (MonoClass
*klass
);
27 mono_class_vtable (MonoDomain
*domain
, MonoClass
*klass
);
30 mono_class_from_name (MonoImage
*image
, const char* name_space
, const char *name
);
33 mono_class_from_name_case (MonoImage
*image
, const char* name_space
, const char *name
);
36 mono_class_get_method_from_name_flags (MonoClass
*klass
, const char *name
, int param_count
, int flags
);
39 mono_class_from_typeref (MonoImage
*image
, uint32_t type_token
);
42 mono_class_from_typeref_checked (MonoImage
*image
, uint32_t type_token
, MonoError
*error
);
45 mono_class_from_generic_parameter (MonoGenericParam
*param
, MonoImage
*image
, mono_bool is_mvar
);
48 mono_class_inflate_generic_type (MonoType
*type
, MonoGenericContext
*context
) /* MONO_DEPRECATED */;
51 mono_class_inflate_generic_method (MonoMethod
*method
, MonoGenericContext
*context
);
54 mono_get_inflated_method (MonoMethod
*method
);
56 MONO_API MonoClassField
*
57 mono_field_from_token (MonoImage
*image
, uint32_t token
, MonoClass
**retklass
, MonoGenericContext
*context
);
60 mono_bounded_array_class_get (MonoClass
*element_class
, uint32_t rank
, mono_bool bounded
);
63 mono_array_class_get (MonoClass
*element_class
, uint32_t rank
);
66 mono_ptr_class_get (MonoType
*type
);
68 MONO_API MonoClassField
*
69 mono_class_get_field (MonoClass
*klass
, uint32_t field_token
);
71 MONO_API MonoClassField
*
72 mono_class_get_field_from_name (MonoClass
*klass
, const char *name
);
75 mono_class_get_field_token (MonoClassField
*field
);
78 mono_class_get_event_token (MonoEvent
*event
);
80 MONO_API MonoProperty
*
81 mono_class_get_property_from_name (MonoClass
*klass
, const char *name
);
84 mono_class_get_property_token (MonoProperty
*prop
);
87 mono_array_element_size (MonoClass
*ac
);
90 mono_class_instance_size (MonoClass
*klass
);
93 mono_class_array_element_size (MonoClass
*klass
);
96 mono_class_data_size (MonoClass
*klass
);
99 mono_class_value_size (MonoClass
*klass
, uint32_t *align
);
102 mono_class_min_align (MonoClass
*klass
);
105 mono_class_from_mono_type (MonoType
*type
);
108 mono_class_is_subclass_of (MonoClass
*klass
, MonoClass
*klassc
,
109 mono_bool check_interfaces
);
112 mono_class_is_assignable_from (MonoClass
*klass
, MonoClass
*oklass
);
115 mono_ldtoken (MonoImage
*image
, uint32_t token
, MonoClass
**retclass
, MonoGenericContext
*context
);
118 mono_type_get_name (MonoType
*type
);
121 mono_type_get_underlying_type (MonoType
*type
);
123 /* MonoClass accessors */
125 mono_class_get_image (MonoClass
*klass
);
128 mono_class_get_element_class (MonoClass
*klass
);
131 mono_class_is_valuetype (MonoClass
*klass
);
134 mono_class_is_enum (MonoClass
*klass
);
137 mono_class_enum_basetype (MonoClass
*klass
);
140 mono_class_get_parent (MonoClass
*klass
);
143 mono_class_get_nesting_type (MonoClass
*klass
);
146 mono_class_get_rank (MonoClass
*klass
);
149 mono_class_get_flags (MonoClass
*klass
);
152 mono_class_get_name (MonoClass
*klass
);
155 mono_class_get_namespace (MonoClass
*klass
);
158 mono_class_get_type (MonoClass
*klass
);
161 mono_class_get_type_token (MonoClass
*klass
);
164 mono_class_get_byref_type (MonoClass
*klass
);
167 mono_class_num_fields (MonoClass
*klass
);
170 mono_class_num_methods (MonoClass
*klass
);
173 mono_class_num_properties (MonoClass
*klass
);
176 mono_class_num_events (MonoClass
*klass
);
178 MONO_API MonoClassField
*
179 mono_class_get_fields (MonoClass
* klass
, void **iter
);
182 mono_class_get_methods (MonoClass
* klass
, void **iter
);
184 MONO_API MonoProperty
*
185 mono_class_get_properties (MonoClass
* klass
, void **iter
);
188 mono_class_get_events (MonoClass
* klass
, void **iter
);
191 mono_class_get_interfaces (MonoClass
* klass
, void **iter
);
194 mono_class_get_nested_types (MonoClass
* klass
, void **iter
);
197 mono_class_is_delegate (MonoClass
* klass
);
200 mono_class_implements_interface (MonoClass
* klass
, MonoClass
* iface
);
202 /* MonoClassField accessors */
204 mono_field_get_name (MonoClassField
*field
);
207 mono_field_get_type (MonoClassField
*field
);
210 mono_field_get_parent (MonoClassField
*field
);
213 mono_field_get_flags (MonoClassField
*field
);
216 mono_field_get_offset (MonoClassField
*field
);
218 MONO_API
const char *
219 mono_field_get_data (MonoClassField
*field
);
221 /* MonoProperty acessors */
223 mono_property_get_name (MonoProperty
*prop
);
226 mono_property_get_set_method (MonoProperty
*prop
);
229 mono_property_get_get_method (MonoProperty
*prop
);
232 mono_property_get_parent (MonoProperty
*prop
);
235 mono_property_get_flags (MonoProperty
*prop
);
237 /* MonoEvent accessors */
239 mono_event_get_name (MonoEvent
*event
);
242 mono_event_get_add_method (MonoEvent
*event
);
245 mono_event_get_remove_method (MonoEvent
*event
);
248 mono_event_get_remove_method (MonoEvent
*event
);
251 mono_event_get_raise_method (MonoEvent
*event
);
254 mono_event_get_parent (MonoEvent
*event
);
257 mono_event_get_flags (MonoEvent
*event
);
259 MONO_API MonoMethod
*
260 mono_class_get_method_from_name (MonoClass
*klass
, const char *name
, int param_count
);
263 mono_class_name_from_token (MonoImage
*image
, uint32_t type_token
);
266 mono_method_can_access_field (MonoMethod
*method
, MonoClassField
*field
);
269 mono_method_can_access_method (MonoMethod
*method
, MonoMethod
*called
);
273 #endif /* _MONO_CLI_CLASS_H_ */