2005-06-05 Peter Bartok <pbartok@novell.com>
[mono.git] / mono / metadata / appdomain.h
1 /*
2  * appdomain.h: AppDomain functions
3  *
4  * Author:
5  *      Dietmar Maurer (dietmar@ximian.com)
6  *
7  * (C) 2001 Ximian, Inc.
8  */
9
10 #ifndef _MONO_METADATA_APPDOMAIN_H_
11 #define _MONO_METADATA_APPDOMAIN_H_
12
13 #include <glib.h>
14
15 #include <mono/metadata/object.h>
16 #include <mono/metadata/reflection.h>
17 #include <mono/metadata/mempool.h>
18
19 typedef void (*MonoThreadStartCB) (guint32 tid, gpointer stack_start,
20                                    gpointer func);
21 typedef void (*MonoThreadAttachCB) (guint32 tid, gpointer stack_start);
22
23 typedef struct _MonoAppDomain MonoAppDomain;
24 typedef struct _MonoJitInfo MonoJitInfo;
25
26 typedef void (*MonoDomainFunc) (MonoDomain *domain, gpointer user_data);
27
28 MonoDomain*
29 mono_init                  (const char *filename);
30
31 MonoDomain *
32 mono_init_from_assembly    (const char *domain_name, const char *filename);
33
34 MonoDomain *
35 mono_init_version          (const char *domain_name, const char *version);
36
37 MonoDomain*
38 mono_get_root_domain       (void);
39
40 void
41 mono_runtime_init          (MonoDomain *domain, MonoThreadStartCB start_cb,
42                             MonoThreadAttachCB attach_cb);
43
44 void
45 mono_runtime_cleanup       (MonoDomain *domain);
46
47 void
48 mono_install_runtime_cleanup (MonoDomainFunc func);
49
50 void
51 mono_runtime_quit (void);
52
53 void
54 mono_runtime_set_shutting_down (void);
55
56 gboolean
57 mono_runtime_is_shutting_down (void);
58
59 const char*
60 mono_check_corlib_version (void);
61
62 MonoDomain *
63 mono_domain_create         (void);
64
65 MonoDomain *
66 mono_domain_get            (void);
67
68 MonoDomain *
69 mono_domain_get_by_id      (gint32 domainid);
70
71 gint32
72 mono_domain_get_id         (MonoDomain *domain);
73
74 gboolean
75 mono_domain_set            (MonoDomain *domain, gboolean force);
76
77 void
78 mono_domain_set_internal   (MonoDomain *domain);
79
80 gboolean
81 mono_domain_is_unloading   (MonoDomain *domain);
82
83 void
84 mono_domain_foreach        (MonoDomainFunc func, gpointer user_data);
85
86 MonoAssembly *
87 mono_domain_assembly_open  (MonoDomain *domain, const char *name);
88
89 gboolean
90 mono_domain_finalize       (MonoDomain *domain, guint32 timeout);
91
92 void
93 mono_domain_free           (MonoDomain *domain, gboolean force);
94
95 gboolean
96 mono_domain_has_type_resolve (MonoDomain *domain);
97
98 MonoReflectionAssembly *
99 mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb);
100
101 gboolean
102 mono_domain_owns_vtable_slot (MonoDomain *domain, gpointer vtable_slot);
103
104 void
105 mono_context_init                                  (MonoDomain *domain);
106
107 void 
108 mono_context_set                                   (MonoAppContext *new_context);
109
110 MonoAppContext * 
111 mono_context_get                                   (void);
112
113 MonoJitInfo *
114 mono_jit_info_table_find   (MonoDomain *domain, char *addr);
115
116 MonoImage*
117 mono_get_corlib            (void);
118
119 MonoClass*
120 mono_get_object_class      (void);
121
122 MonoClass*
123 mono_get_byte_class        (void);
124
125 MonoClass*
126 mono_get_void_class        (void);
127
128 MonoClass*
129 mono_get_boolean_class     (void);
130
131 MonoClass*
132 mono_get_sbyte_class       (void);
133
134 MonoClass*
135 mono_get_int16_class       (void);
136
137 MonoClass*
138 mono_get_uint16_class      (void);
139
140 MonoClass*
141 mono_get_int32_class       (void);
142
143 MonoClass*
144 mono_get_uint32_class      (void);
145
146 MonoClass*
147 mono_get_intptr_class         (void);
148
149 MonoClass*
150 mono_get_uintptr_class        (void);
151
152 MonoClass*
153 mono_get_int64_class       (void);
154
155 MonoClass*
156 mono_get_uint64_class      (void);
157
158 MonoClass*
159 mono_get_single_class      (void);
160
161 MonoClass*
162 mono_get_double_class      (void);
163
164 MonoClass*
165 mono_get_char_class        (void);
166
167 MonoClass*
168 mono_get_string_class      (void);
169
170 MonoClass*
171 mono_get_enum_class        (void);
172
173 MonoClass*
174 mono_get_array_class       (void);
175
176 MonoClass*
177 mono_get_thread_class       (void);
178
179 MonoClass*
180 mono_get_exception_class    (void);
181
182 #endif /* _MONO_METADATA_APPDOMAIN_H_ */
183