* list :
[mono.git] / mono / metadata / reflection.h
index e533c838de257cc790b9770f5912055eff15544e..e01a2bbf81b2c3b2ac8e0edbff9fa0205072d127 100644 (file)
@@ -32,6 +32,7 @@ struct _MonoReflectionMethod {
        MonoObject object;
        MonoMethod *method;
        MonoString *name;
+       MonoReflectionType *reftype;
 };
 
 struct _MonoDelegate {
@@ -123,12 +124,11 @@ typedef struct {
 typedef struct {
        MonoString *name;
        MonoString *name_space;
-       MonoReflectionType *parent;
        MonoReflectionType *etype;
+       MonoReflectionType *nested_in;
        MonoReflectionAssembly *assembly;
-       guint32 attrs;
        guint32 rank;
-       MonoBoolean isbyref, ispointer, isprimitive;
+       MonoBoolean isprimitive;
 } MonoTypeInfo;
 
 typedef struct {
@@ -190,6 +190,7 @@ typedef struct {
 
 typedef struct {
        MonoObject object;
+       MonoMethod *mhandle;
        MonoReflectionILGen *ilgen;
        MonoArray *parameters;
        guint32 attrs;
@@ -264,6 +265,8 @@ typedef struct {
        GHashTable *handleref;
        GList *array_methods;
        MonoGHashTable *token_fixups;
+       char *strong_name;
+       guint32 strong_name_size;
        MonoDynamicStream pefile;
        MonoDynamicStream sheap;
        MonoDynamicStream code; /* used to store method headers and bytecode */
@@ -291,6 +294,13 @@ typedef struct {
        MonoString *dir;
        MonoArray *cattrs;
        MonoArray *resources;
+       MonoString *keyfile;
+       MonoString *version;
+       MonoString *culture;
+       guint32 algid;
+       guint32 flags;
+       guint32 pekind;
+       MonoBoolean delay_sign;
 } MonoReflectionAssemblyBuilder;
 
 typedef struct {
@@ -323,7 +333,7 @@ typedef struct {
 typedef struct {
        MonoObject      obj;
        MonoImage  *image;
-       MonoObject *assembly;
+       MonoReflectionAssembly *assembly;
        MonoString *fqname;
        MonoString *name;
        MonoString *scopename;
@@ -365,6 +375,16 @@ typedef struct {
        MonoString *codebase;
        gint32 major, minor, build, revision;
        /* FIXME: add missing stuff */
+/*     CultureInfo cultureinfo;
+       AssemblyNameFlags flags;
+       AssemblyHashAlgorithm hashalg;
+       StrongNameKeyPair keypair;
+       AssemblyVersionCompatibility versioncompat;*/
+       MonoObject  *cultureInfo;
+       MonoObject  *flags;
+       MonoObject  *hashalg;
+       MonoObject  *keypair;
+       MonoObject  *versioncompat;
 } MonoReflectionAssemblyName;
 
 typedef struct {
@@ -417,8 +437,9 @@ guint32       mono_image_insert_string (MonoReflectionAssemblyBuilder *assembly,
 guint32       mono_image_create_token  (MonoDynamicAssembly *assembly, MonoObject *obj);
 
 MonoReflectionAssembly* mono_assembly_get_object (MonoDomain *domain, MonoAssembly *assembly);
+MonoReflectionModule*   mono_module_get_object   (MonoDomain *domain, MonoImage *image);
 MonoReflectionType*     mono_type_get_object     (MonoDomain *domain, MonoType *type);
-MonoReflectionMethod*   mono_method_get_object   (MonoDomain *domain, MonoMethod *method);
+MonoReflectionMethod*   mono_method_get_object   (MonoDomain *domain, MonoMethod *method, MonoClass *refclass);
 MonoReflectionField*    mono_field_get_object    (MonoDomain *domain, MonoClass *klass, MonoClassField *field);
 MonoReflectionProperty* mono_property_get_object (MonoDomain *domain, MonoClass *klass, MonoProperty *property);
 MonoReflectionEvent*    mono_event_get_object    (MonoDomain *domain, MonoClass *klass, MonoEvent *event);
@@ -432,6 +453,8 @@ void        mono_reflection_setup_internal_class  (MonoReflectionTypeBuilder *tb
 
 void        mono_reflection_create_internal_class (MonoReflectionTypeBuilder *tb);
 
+MonoReflectionType* mono_reflection_create_runtime_class  (MonoReflectionTypeBuilder *tb);
+
 MonoArray  *mono_reflection_sighelper_get_signature_local (MonoReflectionSigHelper *sig);
 
 MonoArray  *mono_reflection_sighelper_get_signature_field (MonoReflectionSigHelper *sig);