X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fmetadata%2Fclass.h;h=d9f315139b123d26407ec1d7b443270fb842fe27;hb=d540bdce6d8f9bfedb6cc8a3071bb9b4e4dd2c51;hp=8a0b922cb4808a52735c56f86d15acb84dd6cb24;hpb=0443306d611d0830e27327e1f0a3ef3457dfa535;p=mono.git diff --git a/mono/metadata/class.h b/mono/metadata/class.h index 8a0b922cb48..d9f315139b1 100644 --- a/mono/metadata/class.h +++ b/mono/metadata/class.h @@ -4,8 +4,9 @@ #include #include #include +#include -G_BEGIN_DECLS +MONO_BEGIN_DECLS typedef struct MonoVTable MonoVTable; @@ -13,251 +14,260 @@ typedef struct _MonoClassField MonoClassField; typedef struct _MonoProperty MonoProperty; typedef struct _MonoEvent MonoEvent; -typedef struct { - MonoVTable *default_vtable; - MonoVTable *xdomain_vtable; - MonoClass *proxy_class; - char* proxy_class_name; - guint interface_count; - MonoClass *interfaces [MONO_ZERO_LEN_ARRAY]; -} MonoRemoteClass; +MONO_API MonoClass * +mono_class_get (MonoImage *image, uint32_t type_token); -MonoClass * -mono_class_get (MonoImage *image, guint32 type_token); +MONO_API MonoClass * +mono_class_get_full (MonoImage *image, uint32_t type_token, MonoGenericContext *context); -MonoClass * -mono_class_get_full (MonoImage *image, guint32 type_token, MonoGenericContext *context); - -gboolean +MONO_API mono_bool mono_class_init (MonoClass *klass); -MonoVTable * +MONO_API MonoVTable * mono_class_vtable (MonoDomain *domain, MonoClass *klass); -MonoClass * +MONO_API MonoClass * mono_class_from_name (MonoImage *image, const char* name_space, const char *name); -MonoClass * +MONO_API MonoClass * mono_class_from_name_case (MonoImage *image, const char* name_space, const char *name); -MonoMethod * +MONO_API MonoMethod * mono_class_get_method_from_name_flags (MonoClass *klass, const char *name, int param_count, int flags); -MonoClass * -mono_class_from_typeref (MonoImage *image, guint32 type_token); +MONO_API MonoClass * +mono_class_from_typeref (MonoImage *image, uint32_t type_token); + +MONO_API MonoClass * +mono_class_from_typeref_checked (MonoImage *image, uint32_t type_token, MonoError *error); -MonoClass * -mono_class_from_generic_parameter (MonoGenericParam *param, MonoImage *image, gboolean is_mvar); +MONO_API MonoClass * +mono_class_from_generic_parameter (MonoGenericParam *param, MonoImage *image, mono_bool is_mvar); -MonoType* -mono_class_inflate_generic_type (MonoType *type, MonoGenericContext *context); +MONO_API MonoType* +mono_class_inflate_generic_type (MonoType *type, MonoGenericContext *context) /* MONO_DEPRECATED */; -MonoMethod* +MONO_API MonoMethod* mono_class_inflate_generic_method (MonoMethod *method, MonoGenericContext *context); -MonoMethod * +MONO_API MonoMethod * mono_get_inflated_method (MonoMethod *method); -MonoClassField* -mono_field_from_token (MonoImage *image, guint32 token, MonoClass **retklass, MonoGenericContext *context); +MONO_API MonoClassField* +mono_field_from_token (MonoImage *image, uint32_t token, MonoClass **retklass, MonoGenericContext *context); -MonoClass * -mono_bounded_array_class_get (MonoClass *element_class, guint32 rank, gboolean bounded); +MONO_API MonoClass * +mono_bounded_array_class_get (MonoClass *element_class, uint32_t rank, mono_bool bounded); -MonoClass * -mono_array_class_get (MonoClass *element_class, guint32 rank); +MONO_API MonoClass * +mono_array_class_get (MonoClass *element_class, uint32_t rank); -MonoClass * +MONO_API MonoClass * mono_ptr_class_get (MonoType *type); -MonoClassField * -mono_class_get_field (MonoClass *klass, guint32 field_token); +MONO_API MonoClassField * +mono_class_get_field (MonoClass *klass, uint32_t field_token); -MonoClassField * +MONO_API MonoClassField * mono_class_get_field_from_name (MonoClass *klass, const char *name); -guint32 +MONO_API uint32_t mono_class_get_field_token (MonoClassField *field); -guint32 +MONO_API uint32_t mono_class_get_event_token (MonoEvent *event); -MonoProperty* +MONO_API MonoProperty* mono_class_get_property_from_name (MonoClass *klass, const char *name); -guint32 +MONO_API uint32_t mono_class_get_property_token (MonoProperty *prop); -gint32 +MONO_API int32_t mono_array_element_size (MonoClass *ac); -gint32 +MONO_API int32_t mono_class_instance_size (MonoClass *klass); -gint32 +MONO_API int32_t mono_class_array_element_size (MonoClass *klass); -gint32 +MONO_API int32_t mono_class_data_size (MonoClass *klass); -gint32 -mono_class_value_size (MonoClass *klass, guint32 *align); +MONO_API int32_t +mono_class_value_size (MonoClass *klass, uint32_t *align); -gint32 +MONO_API int32_t mono_class_min_align (MonoClass *klass); -MonoClass * +MONO_API MonoClass * mono_class_from_mono_type (MonoType *type); -gboolean +MONO_API mono_bool mono_class_is_subclass_of (MonoClass *klass, MonoClass *klassc, - gboolean check_interfaces); + mono_bool check_interfaces); -gboolean +MONO_API mono_bool mono_class_is_assignable_from (MonoClass *klass, MonoClass *oklass); -gpointer -mono_ldtoken (MonoImage *image, guint32 token, MonoClass **retclass, MonoGenericContext *context); +MONO_API void* +mono_ldtoken (MonoImage *image, uint32_t token, MonoClass **retclass, MonoGenericContext *context); -char* +MONO_API char* mono_type_get_name (MonoType *type); -MonoType* +MONO_API MonoType* mono_type_get_underlying_type (MonoType *type); /* MonoClass accessors */ -MonoImage* +MONO_API MonoImage* mono_class_get_image (MonoClass *klass); -MonoClass* +MONO_API MonoClass* mono_class_get_element_class (MonoClass *klass); -gboolean +MONO_API mono_bool mono_class_is_valuetype (MonoClass *klass); -gboolean +MONO_API mono_bool mono_class_is_enum (MonoClass *klass); -MonoType* +MONO_API MonoType* mono_class_enum_basetype (MonoClass *klass); -MonoClass* +MONO_API MonoClass* mono_class_get_parent (MonoClass *klass); -MonoClass* +MONO_API MonoClass* mono_class_get_nesting_type (MonoClass *klass); -int +MONO_API int mono_class_get_rank (MonoClass *klass); -guint32 +MONO_API uint32_t mono_class_get_flags (MonoClass *klass); -const char* +MONO_API const char* mono_class_get_name (MonoClass *klass); -const char* +MONO_API const char* mono_class_get_namespace (MonoClass *klass); -MonoType* +MONO_API MonoType* mono_class_get_type (MonoClass *klass); -guint32 +MONO_API uint32_t mono_class_get_type_token (MonoClass *klass); -MonoType* +MONO_API MonoType* mono_class_get_byref_type (MonoClass *klass); -int +MONO_API int mono_class_num_fields (MonoClass *klass); -int +MONO_API int mono_class_num_methods (MonoClass *klass); -int +MONO_API int mono_class_num_properties (MonoClass *klass); -int +MONO_API int mono_class_num_events (MonoClass *klass); -MonoClassField* -mono_class_get_fields (MonoClass* klass, gpointer *iter); +MONO_API MonoClassField* +mono_class_get_fields (MonoClass* klass, void **iter); + +MONO_API MonoMethod* +mono_class_get_methods (MonoClass* klass, void **iter); + +MONO_API MonoProperty* +mono_class_get_properties (MonoClass* klass, void **iter); -MonoMethod* -mono_class_get_methods (MonoClass* klass, gpointer *iter); +MONO_API MonoEvent* +mono_class_get_events (MonoClass* klass, void **iter); -MonoProperty* -mono_class_get_properties (MonoClass* klass, gpointer *iter); +MONO_API MonoClass* +mono_class_get_interfaces (MonoClass* klass, void **iter); -MonoEvent* -mono_class_get_events (MonoClass* klass, gpointer *iter); +MONO_API MonoClass* +mono_class_get_nested_types (MonoClass* klass, void **iter); -MonoClass* -mono_class_get_interfaces (MonoClass* klass, gpointer *iter); +MONO_API mono_bool +mono_class_is_delegate (MonoClass* klass); -MonoClass* -mono_class_get_nested_types (MonoClass* klass, gpointer *iter); +MONO_API mono_bool +mono_class_implements_interface (MonoClass* klass, MonoClass* iface); /* MonoClassField accessors */ -const char* +MONO_API const char* mono_field_get_name (MonoClassField *field); -MonoType* +MONO_API MonoType* mono_field_get_type (MonoClassField *field); -MonoClass* +MONO_API MonoClass* mono_field_get_parent (MonoClassField *field); -guint32 +MONO_API uint32_t mono_field_get_flags (MonoClassField *field); -const char * +MONO_API uint32_t +mono_field_get_offset (MonoClassField *field); + +MONO_API const char * mono_field_get_data (MonoClassField *field); /* MonoProperty acessors */ -const char* +MONO_API const char* mono_property_get_name (MonoProperty *prop); -MonoMethod* +MONO_API MonoMethod* mono_property_get_set_method (MonoProperty *prop); -MonoMethod* +MONO_API MonoMethod* mono_property_get_get_method (MonoProperty *prop); -MonoClass* +MONO_API MonoClass* mono_property_get_parent (MonoProperty *prop); -guint32 +MONO_API uint32_t mono_property_get_flags (MonoProperty *prop); /* MonoEvent accessors */ -const char* +MONO_API const char* mono_event_get_name (MonoEvent *event); -MonoMethod* +MONO_API MonoMethod* mono_event_get_add_method (MonoEvent *event); -MonoMethod* +MONO_API MonoMethod* mono_event_get_remove_method (MonoEvent *event); -MonoMethod* +MONO_API MonoMethod* mono_event_get_remove_method (MonoEvent *event); -MonoMethod* +MONO_API MonoMethod* mono_event_get_raise_method (MonoEvent *event); -MonoClass* +MONO_API MonoClass* mono_event_get_parent (MonoEvent *event); -guint32 +MONO_API uint32_t mono_event_get_flags (MonoEvent *event); -MonoMethod * +MONO_API MonoMethod * mono_class_get_method_from_name (MonoClass *klass, const char *name, int param_count); -char * -mono_class_name_from_token (MonoImage *image, guint32 type_token); +MONO_API char * +mono_class_name_from_token (MonoImage *image, uint32_t type_token); + +MONO_API mono_bool +mono_method_can_access_field (MonoMethod *method, MonoClassField *field); + +MONO_API mono_bool +mono_method_can_access_method (MonoMethod *method, MonoMethod *called); -G_END_DECLS +MONO_END_DECLS #endif /* _MONO_CLI_CLASS_H_ */