2006-09-27 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / class.h
index 116caa92c2e7b2136b5fd2fee5032481fb6cb905..8a0b922cb4808a52735c56f86d15acb84dd6cb24 100644 (file)
@@ -5,6 +5,8 @@
 #include <mono/metadata/image.h>
 #include <mono/metadata/loader.h>
 
+G_BEGIN_DECLS
+
 typedef struct MonoVTable MonoVTable;
 
 typedef struct _MonoClassField MonoClassField;
@@ -12,11 +14,12 @@ typedef struct _MonoProperty MonoProperty;
 typedef struct _MonoEvent MonoEvent;
 
 typedef struct {
-       MonoVTable *vtable;
+       MonoVTable *default_vtable;
+       MonoVTable *xdomain_vtable;
        MonoClass *proxy_class;
-       guint interface_count;
-       MonoClass **interfaces;
        char* proxy_class_name;
+       guint interface_count;
+       MonoClass *interfaces [MONO_ZERO_LEN_ARRAY];
 } MonoRemoteClass;
 
 MonoClass *
@@ -25,7 +28,7 @@ mono_class_get             (MonoImage *image, guint32 type_token);
 MonoClass *
 mono_class_get_full        (MonoImage *image, guint32 type_token, MonoGenericContext *context);
 
-void
+gboolean
 mono_class_init            (MonoClass *klass);
 
 MonoVTable *
@@ -37,20 +40,23 @@ mono_class_from_name       (MonoImage *image, const char* name_space, const char
 MonoClass *
 mono_class_from_name_case  (MonoImage *image, const char* name_space, const char *name);
 
+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);
 
 MonoClass *
 mono_class_from_generic_parameter (MonoGenericParam *param, MonoImage *image, gboolean is_mvar);
 
-MonoClass*
-mono_class_create_generic  (MonoGenericInst *ginst);
-
 MonoType*
 mono_class_inflate_generic_type (MonoType *type, MonoGenericContext *context);
 
 MonoMethod*
-mono_class_inflate_generic_method (MonoMethod *method, MonoGenericContext *context, MonoClass *klass);
+mono_class_inflate_generic_method (MonoMethod *method, MonoGenericContext *context);
+
+MonoMethod *
+mono_get_inflated_method (MonoMethod *method);
 
 MonoClassField*
 mono_field_from_token      (MonoImage *image, guint32 token, MonoClass **retklass, MonoGenericContext *context);
@@ -70,9 +76,18 @@ mono_class_get_field       (MonoClass *klass, guint32 field_token);
 MonoClassField *
 mono_class_get_field_from_name (MonoClass *klass, const char *name);
 
+guint32
+mono_class_get_field_token (MonoClassField *field);
+
+guint32
+mono_class_get_event_token (MonoEvent *event);
+
 MonoProperty*
 mono_class_get_property_from_name (MonoClass *klass, const char *name);
 
+guint32
+mono_class_get_property_token (MonoProperty *prop);
+
 gint32
 mono_array_element_size    (MonoClass *ac);
 
@@ -107,6 +122,9 @@ mono_ldtoken               (MonoImage *image, guint32 token, MonoClass **retclas
 char*         
 mono_type_get_name         (MonoType *type);
 
+MonoType*
+mono_type_get_underlying_type (MonoType *type);
+
 /* MonoClass accessors */
 MonoImage*
 mono_class_get_image         (MonoClass *klass);
@@ -144,6 +162,9 @@ mono_class_get_namespace     (MonoClass *klass);
 MonoType*
 mono_class_get_type          (MonoClass *klass);
 
+guint32
+mono_class_get_type_token    (MonoClass *klass);
+
 MonoType*
 mono_class_get_byref_type    (MonoClass *klass);
 
@@ -190,6 +211,9 @@ mono_field_get_parent (MonoClassField *field);
 guint32
 mono_field_get_flags  (MonoClassField *field);
 
+const char *
+mono_field_get_data  (MonoClassField *field);
+
 /* MonoProperty acessors */
 const char*
 mono_property_get_name       (MonoProperty *prop);
@@ -228,5 +252,12 @@ mono_event_get_parent        (MonoEvent *event);
 guint32
 mono_event_get_flags         (MonoEvent *event);
 
+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);
+
+G_END_DECLS
 
 #endif /* _MONO_CLI_CLASS_H_ */