Added a bulk of tests from Mainsoft repository.
[mono.git] / mono / metadata / appdomain.h
index 9c9e4b730886d4334f4dee15b5d48f649dbfe48e..b9f37c8ca0d6c228cc8c87c7c05ead1e41af7be3 100644 (file)
 #ifndef _MONO_METADATA_APPDOMAIN_H_
 #define _MONO_METADATA_APPDOMAIN_H_
 
-#include <config.h>
 #include <glib.h>
 
 #include <mono/metadata/object.h>
 #include <mono/metadata/reflection.h>
+#include <mono/metadata/mempool.h>
 
-/* This is a copy of System.AppDomainSetup */
-typedef struct {
-       MonoObject object;
-       MonoString *application_base;
-       MonoString *application_name;
-       MonoString *cache_path;
-       MonoString *configuration_file;
-       MonoString *dynamic_base;
-       MonoString *license_file;
-       MonoString *private_bin_path;
-       MonoString *private_bin_path_probe;
-       MonoString *shadow_copy_directories;
-       MonoString *shadow_copy_files;
-       MonoBoolean publisher_policy;
-} MonoAppDomainSetup;
+G_BEGIN_DECLS
+
+typedef void (*MonoThreadStartCB) (gsize tid, gpointer stack_start,
+                                  gpointer func);
+typedef void (*MonoThreadAttachCB) (gsize tid, gpointer stack_start);
 
 typedef struct _MonoAppDomain MonoAppDomain;
+typedef struct _MonoJitInfo MonoJitInfo;
+
+typedef void (*MonoDomainFunc) (MonoDomain *domain, gpointer user_data);
 
-struct _MonoDomain {
-       MonoAppDomain *domain;
-       GHashTable *env;
-       GHashTable *assemblies;
-       MonoAppDomainSetup *setup;
-       MonoString *friendly_name;
-       GHashTable *ldstr_table;
-       GHashTable *class_vtable_hash;
-};
-
-/* This is a copy of System.AppDomain */
-struct _MonoAppDomain {
-       MonoObject  object;
-       MonoDomain *data;
-};
+MonoDomain*
+mono_init                  (const char *filename);
 
 MonoDomain *
-mono_init (void);
+mono_init_from_assembly    (const char *domain_name, const char *filename);
 
-inline MonoDomain *
-mono_domain_get (void);
+MonoDomain *
+mono_init_version          (const char *domain_name, const char *version);
 
-inline void
-mono_domain_set (MonoDomain *domain);
+MonoDomain*
+mono_get_root_domain       (void);
 
-MonoAssembly *
-mono_domain_assembly_open (MonoDomain *domain, char *name);
+void
+mono_runtime_init          (MonoDomain *domain, MonoThreadStartCB start_cb,
+                           MonoThreadAttachCB attach_cb);
 
 void
-mono_domain_unload (MonoDomain *domain);
+mono_runtime_cleanup       (MonoDomain *domain);
 
 void
-ves_icall_System_AppDomainSetup_InitAppDomainSetup (MonoAppDomainSetup *setup);
+mono_install_runtime_cleanup (MonoDomainFunc func);
 
-MonoAppDomain *
-ves_icall_System_AppDomain_getCurDomain            (void);
+void
+mono_runtime_quit (void);
 
-MonoAppDomain *
-ves_icall_System_AppDomain_createDomain            (MonoString         *friendly_name,
-                                                   MonoAppDomainSetup *setup);
+void
+mono_runtime_set_shutting_down (void);
 
-MonoObject *
-ves_icall_System_AppDomain_GetData                 (MonoAppDomain *ad, 
-                                                   MonoString    *name);
+gboolean
+mono_runtime_is_shutting_down (void);
+
+const char*
+mono_check_corlib_version (void);
+
+MonoDomain *
+mono_domain_create         (void);
+
+MonoDomain *
+mono_domain_get            (void);
+
+MonoDomain *
+mono_domain_get_by_id      (gint32 domainid);
+
+gint32
+mono_domain_get_id         (MonoDomain *domain);
+
+gboolean
+mono_domain_set            (MonoDomain *domain, gboolean force);
+
+void
+mono_domain_set_internal   (MonoDomain *domain);
+
+gboolean
+mono_domain_is_unloading   (MonoDomain *domain);
 
 void
-ves_icall_System_AppDomain_SetData                 (MonoAppDomain *ad, 
-                                                   MonoString    *name, 
-                                                   MonoObject    *data);
+mono_domain_foreach        (MonoDomainFunc func, gpointer user_data);
+
+MonoAssembly *
+mono_domain_assembly_open  (MonoDomain *domain, const char *name);
 
-MonoAppDomainSetup *
-ves_icall_System_AppDomain_getSetup                (MonoAppDomain *ad);
+gboolean
+mono_domain_finalize       (MonoDomain *domain, guint32 timeout);
 
-MonoString *
-ves_icall_System_AppDomain_getFriendlyName         (MonoAppDomain *ad);
+void
+mono_domain_free           (MonoDomain *domain, gboolean force);
 
-MonoArray *
-ves_icall_System_AppDomain_GetAssemblies           (MonoAppDomain *ad);
+gboolean
+mono_domain_has_type_resolve (MonoDomain *domain);
 
 MonoReflectionAssembly *
-ves_icall_System_AppDomain_LoadAssembly            (MonoAppDomain *ad, 
-                                                   MonoReflectionAssemblyName *assRef,
-                                                   MonoObject    *evidence);
+mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb);
+
+gboolean
+mono_domain_owns_vtable_slot (MonoDomain *domain, gpointer vtable_slot);
 
 void
-ves_icall_System_AppDomain_Unload                  (MonoAppDomain *ad);
+mono_context_init                                 (MonoDomain *domain);
 
-gint32
-ves_icall_System_AppDomain_ExecuteAssembly         (MonoAppDomain *ad, 
-                                                   MonoString    *file, 
-                                                   MonoObject    *evidence,
-                                                   MonoArray     *args);
+void 
+mono_context_set                                  (MonoAppContext *new_context);
 
+MonoAppContext * 
+mono_context_get                                  (void);
+
+MonoJitInfo *
+mono_jit_info_table_find   (MonoDomain *domain, char *addr);
+
+MonoImage*
+mono_get_corlib            (void);
+
+MonoClass*
+mono_get_object_class      (void);
+
+MonoClass*
+mono_get_byte_class        (void);
+
+MonoClass*
+mono_get_void_class        (void);
+
+MonoClass*
+mono_get_boolean_class     (void);
+
+MonoClass*
+mono_get_sbyte_class       (void);
+
+MonoClass*
+mono_get_int16_class       (void);
+
+MonoClass*
+mono_get_uint16_class      (void);
+
+MonoClass*
+mono_get_int32_class       (void);
+
+MonoClass*
+mono_get_uint32_class      (void);
+
+MonoClass*
+mono_get_intptr_class         (void);
+
+MonoClass*
+mono_get_uintptr_class        (void);
+
+MonoClass*
+mono_get_int64_class       (void);
+
+MonoClass*
+mono_get_uint64_class      (void);
+
+MonoClass*
+mono_get_single_class      (void);
+
+MonoClass*
+mono_get_double_class      (void);
+
+MonoClass*
+mono_get_char_class        (void);
+
+MonoClass*
+mono_get_string_class      (void);
+
+MonoClass*
+mono_get_enum_class        (void);
+
+MonoClass*
+mono_get_array_class       (void);
+
+MonoClass*
+mono_get_thread_class       (void);
+
+MonoClass*
+mono_get_exception_class    (void);
+
+G_END_DECLS
 #endif /* _MONO_METADATA_APPDOMAIN_H_ */
+