| 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; |
|
| 16 |
|
| 17 MonoAssembly *assm; |
|
| 18 MonoClass *klass; |
|
| 19 MonoObject *obj; |
|
| 20 |
|
| 21 MonoMethod *init; |
|
| 22 MonoMethod *load; |
|
| 23 MonoMethod *unload; |
|
| 24 MonoMethod *destroy; |
|
| 25 |
|
| 26 GList *signal_data; |
|
| 27 } GaimMonoPlugin; |
|
| 28 |
|
| 29 gboolean ml_init(void); |
|
| 30 |
|
| 31 void ml_uninit(void); |
|
| 32 |
|
| 33 MonoObject* ml_invoke(MonoMethod *method, void *obj, void **params); |
|
| 34 |
|
| 35 MonoObject* ml_delegate_invoke(MonoObject *method, void **params); |
|
| 36 |
|
| 37 MonoClass* ml_find_plugin_class(MonoImage *image); |
|
| 38 |
|
| 39 gchar* ml_get_prop_string(MonoObject *obj, char *field); |
|
| 40 |
|
| 41 void ml_set_prop_string(MonoObject *obj, char *field, char *data); |
|
| 42 |
|
| 43 gboolean ml_is_api_dll(MonoImage *image); |
|
| 44 |
|
| 45 MonoDomain* ml_get_domain(void); |
|
| 46 |
|
| 47 void ml_set_domain(MonoDomain *d); |
|
| 48 |
|
| 49 void ml_init_internal_calls(void); |
|
| 50 |
|
| 51 MonoObject* ml_object_from_gaim_type(GaimType type, gpointer data); |
|
| 52 |
|
| 53 MonoObject* ml_object_from_gaim_subtype(GaimSubType type, gpointer data); |
|
| 54 |
|
| 55 MonoObject* ml_create_api_object(char *class_name); |
|
| 56 |
|
| 57 void ml_set_api_image(MonoImage *image); |
|
| 58 |
|
| 59 MonoImage* ml_get_api_image(void); |
|
| 60 |
|
| 61 /* hash table stuff; probably don't need it anymore */ |
|
| 62 |
|
| 63 void ml_add_plugin(GaimMonoPlugin *plugin); |
|
| 64 |
|
| 65 gboolean ml_remove_plugin(GaimMonoPlugin *plugin); |
|
| 66 |
|
| 67 gpointer ml_find_plugin(GaimMonoPlugin *plugin); |
|
| 68 |
|
| 69 gpointer ml_find_plugin_by_class(MonoClass *klass); |
|
| 70 |
|
| 71 GHashTable* ml_get_plugin_hash(void); |
|
| 72 |
|
| 73 #endif |
|