Mercurial > pidgin
annotate plugins/mono/loader/mono-helper.h @ 11980:67fbd2ff4c4e
[gaim-migrate @ 14273]
Mono cleanup patch from Eoin Coffey
First, I changed mono_loader_ to ml_, since I was
getting sick of typing mono_loader_ :-D
Moved the mono runtime init and deinit code out of
mono.c into ml_init and ml_uninit in mono-helper.c
Added api/Status.cs and loader/status-glue.c so the
.net api now knows very little (as in the 'id') of
statuses.
committer: Tailor Script <tailor@pidgin.im>
author | Gary Kramlich <grim@reaperworld.com> |
---|---|
date | Sat, 05 Nov 2005 02:09:30 +0000 |
parents | 565d2e437c04 |
children | ecd33ffb0b0a |
rev | line source |
---|---|
11660 | 1 #ifndef _GAIM_MONO_LOADER_MONO_HELPER_H_ |
2 #define _GAIM_MONO_LOADER_MONO_HELPER_H_ | |
3 | |
4 #include <mono/jit/jit.h> | |
5 #include <mono/metadata/object.h> | |
6 #include <mono/metadata/environment.h> | |
7 #include <mono/metadata/assembly.h> | |
8 #include <mono/metadata/debug-helpers.h> | |
9 #include <mono/metadata/tokentype.h> | |
10 #include "plugin.h" | |
11 #include "value.h" | |
12 #include "debug.h" | |
13 | |
14 typedef struct { | |
15 GaimPlugin *plugin; | |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
16 |
11660 | 17 MonoAssembly *assm; |
18 MonoClass *klass; | |
19 MonoObject *obj; | |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
20 |
11660 | 21 MonoMethod *init; |
22 MonoMethod *load; | |
23 MonoMethod *unload; | |
24 MonoMethod *destroy; | |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
25 |
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
26 GList *signal_data; |
11660 | 27 } GaimMonoPlugin; |
28 | |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
29 gboolean ml_init(); |
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
30 |
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
31 void ml_uninit(); |
11952 | 32 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
33 MonoObject* ml_invoke(MonoMethod *method, void *obj, void **params); |
11952 | 34 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
35 MonoObject* ml_delegate_invoke(MonoObject *method, void **params); |
11660 | 36 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
37 MonoClass* ml_find_plugin_class(MonoImage *image); |
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
38 |
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
39 gchar* ml_get_prop_string(MonoObject *obj, char *field); |
11660 | 40 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
41 void ml_set_prop_string(MonoObject *obj, char *field, char *data); |
11660 | 42 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
43 gboolean ml_is_api_dll(MonoImage *image); |
11660 | 44 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
45 MonoDomain* ml_get_domain(void); |
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
46 |
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
47 void ml_set_domain(MonoDomain *d); |
11660 | 48 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
49 void ml_init_internal_calls(void); |
11660 | 50 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
51 MonoObject* ml_object_from_gaim_type(GaimType type, gpointer data); |
11660 | 52 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
53 MonoObject* ml_object_from_gaim_subtype(GaimSubType type, gpointer data); |
11660 | 54 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
55 void ml_set_api_image(MonoImage *image); |
11660 | 56 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
57 MonoImage* ml_get_api_image(); |
11660 | 58 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
59 void ml_destroy_signal_data(gpointer data, gpointer user_data); |
11660 | 60 |
61 /* hash table stuff; probably don't need it anymore */ | |
62 | |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
63 void ml_add_plugin(GaimMonoPlugin *plugin); |
11660 | 64 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
65 gboolean ml_remove_plugin(GaimMonoPlugin *plugin); |
11660 | 66 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
67 gpointer ml_find_plugin(GaimMonoPlugin *plugin); |
11660 | 68 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
69 gpointer ml_find_plugin_by_class(MonoClass *klass); |
11660 | 70 |
11980
67fbd2ff4c4e
[gaim-migrate @ 14273]
Gary Kramlich <grim@reaperworld.com>
parents:
11952
diff
changeset
|
71 GHashTable* ml_get_plugin_hash(); |
11660 | 72 |
73 #endif |