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>
10 typedef struct MonoVTable MonoVTable
;
12 typedef struct _MonoClassField MonoClassField
;
13 typedef struct _MonoProperty MonoProperty
;
14 typedef struct _MonoEvent MonoEvent
;
17 MonoVTable
*default_vtable
;
18 MonoVTable
*xdomain_vtable
;
19 MonoClass
*proxy_class
;
20 char* proxy_class_name
;
21 guint interface_count
;
22 MonoClass
*interfaces
[MONO_ZERO_LEN_ARRAY
];
26 mono_class_get (MonoImage
*image
, guint32 type_token
);
29 mono_class_get_full (MonoImage
*image
, guint32 type_token
, MonoGenericContext
*context
);
32 mono_class_init (MonoClass
*klass
);
35 mono_class_vtable (MonoDomain
*domain
, MonoClass
*klass
);
38 mono_class_from_name (MonoImage
*image
, const char* name_space
, const char *name
);
41 mono_class_from_name_case (MonoImage
*image
, const char* name_space
, const char *name
);
44 mono_class_get_method_from_name_flags (MonoClass
*klass
, const char *name
, int param_count
, int flags
);
47 mono_class_from_typeref (MonoImage
*image
, guint32 type_token
);
50 mono_class_from_generic_parameter (MonoGenericParam
*param
, MonoImage
*image
, gboolean is_mvar
);
53 mono_class_inflate_generic_type (MonoType
*type
, MonoGenericContext
*context
);
56 mono_class_inflate_generic_method (MonoMethod
*method
, MonoGenericContext
*context
);
59 mono_get_inflated_method (MonoMethod
*method
);
62 mono_field_from_token (MonoImage
*image
, guint32 token
, MonoClass
**retklass
, MonoGenericContext
*context
);
65 mono_bounded_array_class_get (MonoClass
*element_class
, guint32 rank
, gboolean bounded
);
68 mono_array_class_get (MonoClass
*element_class
, guint32 rank
);
71 mono_ptr_class_get (MonoType
*type
);
74 mono_class_get_field (MonoClass
*klass
, guint32 field_token
);
77 mono_class_get_field_from_name (MonoClass
*klass
, const char *name
);
80 mono_class_get_field_token (MonoClassField
*field
);
83 mono_class_get_event_token (MonoEvent
*event
);
86 mono_class_get_property_from_name (MonoClass
*klass
, const char *name
);
89 mono_class_get_property_token (MonoProperty
*prop
);
92 mono_array_element_size (MonoClass
*ac
);
95 mono_class_instance_size (MonoClass
*klass
);
98 mono_class_array_element_size (MonoClass
*klass
);
101 mono_class_data_size (MonoClass
*klass
);
104 mono_class_value_size (MonoClass
*klass
, guint32
*align
);
107 mono_class_min_align (MonoClass
*klass
);
110 mono_class_from_mono_type (MonoType
*type
);
113 mono_class_is_subclass_of (MonoClass
*klass
, MonoClass
*klassc
,
114 gboolean check_interfaces
);
117 mono_class_is_assignable_from (MonoClass
*klass
, MonoClass
*oklass
);
120 mono_ldtoken (MonoImage
*image
, guint32 token
, MonoClass
**retclass
, MonoGenericContext
*context
);
123 mono_type_get_name (MonoType
*type
);
126 mono_type_get_underlying_type (MonoType
*type
);
128 /* MonoClass accessors */
130 mono_class_get_image (MonoClass
*klass
);
133 mono_class_get_element_class (MonoClass
*klass
);
136 mono_class_is_valuetype (MonoClass
*klass
);
139 mono_class_is_enum (MonoClass
*klass
);
142 mono_class_enum_basetype (MonoClass
*klass
);
145 mono_class_get_parent (MonoClass
*klass
);
148 mono_class_get_nesting_type (MonoClass
*klass
);
151 mono_class_get_rank (MonoClass
*klass
);
154 mono_class_get_flags (MonoClass
*klass
);
157 mono_class_get_name (MonoClass
*klass
);
160 mono_class_get_namespace (MonoClass
*klass
);
163 mono_class_get_type (MonoClass
*klass
);
166 mono_class_get_type_token (MonoClass
*klass
);
169 mono_class_get_byref_type (MonoClass
*klass
);
172 mono_class_num_fields (MonoClass
*klass
);
175 mono_class_num_methods (MonoClass
*klass
);
178 mono_class_num_properties (MonoClass
*klass
);
181 mono_class_num_events (MonoClass
*klass
);
184 mono_class_get_fields (MonoClass
* klass
, gpointer
*iter
);
187 mono_class_get_methods (MonoClass
* klass
, gpointer
*iter
);
190 mono_class_get_properties (MonoClass
* klass
, gpointer
*iter
);
193 mono_class_get_events (MonoClass
* klass
, gpointer
*iter
);
196 mono_class_get_interfaces (MonoClass
* klass
, gpointer
*iter
);
199 mono_class_get_nested_types (MonoClass
* klass
, gpointer
*iter
);
201 /* MonoClassField accessors */
203 mono_field_get_name (MonoClassField
*field
);
206 mono_field_get_type (MonoClassField
*field
);
209 mono_field_get_parent (MonoClassField
*field
);
212 mono_field_get_flags (MonoClassField
*field
);
215 mono_field_get_offset (MonoClassField
*field
);
218 mono_field_get_data (MonoClassField
*field
);
220 /* MonoProperty acessors */
222 mono_property_get_name (MonoProperty
*prop
);
225 mono_property_get_set_method (MonoProperty
*prop
);
228 mono_property_get_get_method (MonoProperty
*prop
);
231 mono_property_get_parent (MonoProperty
*prop
);
234 mono_property_get_flags (MonoProperty
*prop
);
236 /* MonoEvent accessors */
238 mono_event_get_name (MonoEvent
*event
);
241 mono_event_get_add_method (MonoEvent
*event
);
244 mono_event_get_remove_method (MonoEvent
*event
);
247 mono_event_get_remove_method (MonoEvent
*event
);
250 mono_event_get_raise_method (MonoEvent
*event
);
253 mono_event_get_parent (MonoEvent
*event
);
256 mono_event_get_flags (MonoEvent
*event
);
259 mono_class_get_method_from_name (MonoClass
*klass
, const char *name
, int param_count
);
262 mono_class_name_from_token (MonoImage
*image
, guint32 type_token
);
265 mono_method_can_access_field (MonoMethod
*method
, MonoClassField
*field
);
268 mono_method_can_access_method (MonoMethod
*method
, MonoMethod
*called
);
272 #endif /* _MONO_CLI_CLASS_H_ */