Wed, 12 Nov 2008 05:14:03 +0000
merge of '77693555855fe9cd3215414f79964dba346cc5fa'
and '19a87e98e5857ad0289f2c760d460f7f1dbbb42d'
| 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
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
16 | |
| 11660 | 17 | MonoAssembly *assm; |
| 18 | MonoClass *klass; | |
| 19 | MonoObject *obj; | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
20 | |
| 11660 | 21 | MonoMethod *init; |
| 22 | MonoMethod *load; | |
| 23 | MonoMethod *unload; | |
| 24 | MonoMethod *destroy; | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
25 | |
|
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
26 | GList *signal_data; |
| 11660 | 27 | } GaimMonoPlugin; |
| 28 | ||
|
12323
f52908fb23b0
[gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents:
11996
diff
changeset
|
29 | gboolean ml_init(void); |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
30 | |
|
12323
f52908fb23b0
[gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents:
11996
diff
changeset
|
31 | void ml_uninit(void); |
|
11952
9cefc8360bff
[gaim-migrate @ 14243]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11660
diff
changeset
|
32 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
33 | MonoObject* ml_invoke(MonoMethod *method, void *obj, void **params); |
|
11952
9cefc8360bff
[gaim-migrate @ 14243]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11660
diff
changeset
|
34 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
35 | MonoObject* ml_delegate_invoke(MonoObject *method, void **params); |
| 11660 | 36 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
37 | MonoClass* ml_find_plugin_class(MonoImage *image); |
|
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
38 | |
|
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
39 | gchar* ml_get_prop_string(MonoObject *obj, char *field); |
| 11660 | 40 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
41 | void ml_set_prop_string(MonoObject *obj, char *field, char *data); |
| 11660 | 42 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
43 | gboolean ml_is_api_dll(MonoImage *image); |
| 11660 | 44 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
45 | MonoDomain* ml_get_domain(void); |
|
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
46 | |
|
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
47 | void ml_set_domain(MonoDomain *d); |
| 11660 | 48 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
49 | void ml_init_internal_calls(void); |
| 11660 | 50 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
51 | MonoObject* ml_object_from_gaim_type(GaimType type, gpointer data); |
| 11660 | 52 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
53 | MonoObject* ml_object_from_gaim_subtype(GaimSubType type, gpointer data); |
| 11660 | 54 | |
|
11996
858bd928831c
[gaim-migrate @ 14289]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11980
diff
changeset
|
55 | MonoObject* ml_create_api_object(char *class_name); |
|
858bd928831c
[gaim-migrate @ 14289]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11980
diff
changeset
|
56 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
57 | void ml_set_api_image(MonoImage *image); |
| 11660 | 58 | |
|
12323
f52908fb23b0
[gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents:
11996
diff
changeset
|
59 | MonoImage* ml_get_api_image(void); |
| 11660 | 60 | |
| 61 | /* hash table stuff; probably don't need it anymore */ | |
| 62 | ||
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
63 | void ml_add_plugin(GaimMonoPlugin *plugin); |
| 11660 | 64 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
65 | gboolean ml_remove_plugin(GaimMonoPlugin *plugin); |
| 11660 | 66 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
67 | gpointer ml_find_plugin(GaimMonoPlugin *plugin); |
| 11660 | 68 | |
|
11980
fe5c2c58508c
[gaim-migrate @ 14273]
Eoin Coffey <ecoffey@soc.pidgin.im>
parents:
11952
diff
changeset
|
69 | gpointer ml_find_plugin_by_class(MonoClass *klass); |
| 11660 | 70 | |
|
12323
f52908fb23b0
[gaim-migrate @ 14627]
Richard Laager <rlaager@pidgin.im>
parents:
11996
diff
changeset
|
71 | GHashTable* ml_get_plugin_hash(void); |
| 11660 | 72 | |
| 73 | #endif |