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>
8 typedef struct MonoVTable MonoVTable;
10 typedef struct _MonoClassField MonoClassField;
11 typedef struct _MonoProperty MonoProperty;
12 typedef struct _MonoEvent MonoEvent;
16 MonoClass *proxy_class;
17 guint interface_count;
18 MonoClass **interfaces;
19 char* proxy_class_name;
23 mono_class_get (MonoImage *image, guint32 type_token);
26 mono_class_get_full (MonoImage *image, guint32 type_token, MonoGenericContext *context);
29 mono_class_init (MonoClass *klass);
32 mono_class_vtable (MonoDomain *domain, MonoClass *klass);
35 mono_class_from_name (MonoImage *image, const char* name_space, const char *name);
38 mono_class_from_name_case (MonoImage *image, const char* name_space, const char *name);
41 mono_class_from_typeref (MonoImage *image, guint32 type_token);
44 mono_class_from_generic_parameter (MonoGenericParam *param, MonoImage *image, gboolean is_mvar);
47 mono_class_create_generic (MonoGenericInst *ginst);
50 mono_class_inflate_generic_type (MonoType *type, MonoGenericContext *context);
53 mono_class_inflate_generic_method (MonoMethod *method, MonoGenericContext *context, MonoClass *klass);
56 mono_field_from_token (MonoImage *image, guint32 token, MonoClass **retklass, MonoGenericContext *context);
59 mono_bounded_array_class_get (MonoClass *element_class, guint32 rank, gboolean bounded);
62 mono_array_class_get (MonoClass *element_class, guint32 rank);
65 mono_ptr_class_get (MonoType *type);
68 mono_class_get_field (MonoClass *klass, guint32 field_token);
71 mono_class_get_field_from_name (MonoClass *klass, const char *name);
74 mono_class_get_property_from_name (MonoClass *klass, const char *name);
77 mono_array_element_size (MonoClass *ac);
80 mono_class_instance_size (MonoClass *klass);
83 mono_class_array_element_size (MonoClass *klass);
86 mono_class_data_size (MonoClass *klass);
89 mono_class_value_size (MonoClass *klass, guint32 *align);
92 mono_class_min_align (MonoClass *klass);
95 mono_class_from_mono_type (MonoType *type);
98 mono_class_is_subclass_of (MonoClass *klass, MonoClass *klassc,
99 gboolean check_interfaces);
102 mono_class_is_assignable_from (MonoClass *klass, MonoClass *oklass);
105 mono_ldtoken (MonoImage *image, guint32 token, MonoClass **retclass, MonoGenericContext *context);
108 mono_type_get_name (MonoType *type);
110 /* MonoClass accessors */
112 mono_class_get_image (MonoClass *klass);
115 mono_class_get_element_class (MonoClass *klass);
118 mono_class_is_valuetype (MonoClass *klass);
121 mono_class_is_enum (MonoClass *klass);
124 mono_class_enum_basetype (MonoClass *klass);
127 mono_class_get_parent (MonoClass *klass);
130 mono_class_get_nesting_type (MonoClass *klass);
133 mono_class_get_rank (MonoClass *klass);
136 mono_class_get_flags (MonoClass *klass);
139 mono_class_get_name (MonoClass *klass);
142 mono_class_get_namespace (MonoClass *klass);
145 mono_class_get_type (MonoClass *klass);
148 mono_class_get_byref_type (MonoClass *klass);
151 mono_class_num_fields (MonoClass *klass);
154 mono_class_num_methods (MonoClass *klass);
157 mono_class_num_properties (MonoClass *klass);
160 mono_class_num_events (MonoClass *klass);
163 mono_class_get_fields (MonoClass* klass, gpointer *iter);
166 mono_class_get_methods (MonoClass* klass, gpointer *iter);
169 mono_class_get_properties (MonoClass* klass, gpointer *iter);
172 mono_class_get_events (MonoClass* klass, gpointer *iter);
175 mono_class_get_interfaces (MonoClass* klass, gpointer *iter);
178 mono_class_get_nested_types (MonoClass* klass, gpointer *iter);
180 /* MonoClassField accessors */
182 mono_field_get_name (MonoClassField *field);
185 mono_field_get_type (MonoClassField *field);
188 mono_field_get_parent (MonoClassField *field);
191 mono_field_get_flags (MonoClassField *field);
193 /* MonoProperty acessors */
195 mono_property_get_name (MonoProperty *prop);
198 mono_property_get_set_method (MonoProperty *prop);
201 mono_property_get_get_method (MonoProperty *prop);
204 mono_property_get_parent (MonoProperty *prop);
207 mono_property_get_flags (MonoProperty *prop);
209 /* MonoEvent accessors */
211 mono_event_get_name (MonoEvent *event);
214 mono_event_get_add_method (MonoEvent *event);
217 mono_event_get_remove_method (MonoEvent *event);
220 mono_event_get_remove_method (MonoEvent *event);
223 mono_event_get_raise_method (MonoEvent *event);
226 mono_event_get_parent (MonoEvent *event);
229 mono_event_get_flags (MonoEvent *event);
232 #endif /* _MONO_CLI_CLASS_H_ */