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;
|
|
16 MonoAssembly *assm;
|
|
17 MonoClass *klass;
|
|
18 MonoObject *obj;
|
|
19 MonoMethod *init;
|
|
20 MonoMethod *load;
|
|
21 MonoMethod *unload;
|
|
22 MonoMethod *destroy;
|
|
23 } GaimMonoPlugin;
|
|
24
|
|
25 MonoClass* mono_loader_find_plugin_class(MonoImage *image);
|
|
26
|
|
27 gchar* mono_loader_get_prop_string(MonoObject *obj, char *field);
|
|
28
|
|
29 void mono_loader_set_prop_string(MonoObject *obj, char *field, char *data);
|
|
30
|
|
31 gboolean mono_loader_is_api_dll(MonoImage *image);
|
|
32
|
|
33 MonoDomain* mono_loader_get_domain(void);
|
|
34
|
|
35 void mono_loader_set_domain(MonoDomain *d);
|
|
36
|
|
37 void mono_loader_init_internal_calls(void);
|
|
38
|
|
39 MonoObject* mono_loader_object_from_gaim_type(GaimType type, gpointer data);
|
|
40
|
|
41 MonoObject* mono_loader_object_from_gaim_subtype(GaimSubType type, gpointer data);
|
|
42
|
|
43 void mono_loader_set_api_image(MonoImage *image);
|
|
44
|
|
45 MonoImage* mono_loader_get_api_image();
|
|
46
|
|
47 /* hash table stuff; probably don't need it anymore */
|
|
48
|
|
49 void mono_loader_add_plugin(GaimMonoPlugin *plugin);
|
|
50
|
|
51 gboolean mono_loader_remove_plugin(GaimMonoPlugin *plugin);
|
|
52
|
|
53 gpointer mono_loader_find_plugin(GaimMonoPlugin *plugin);
|
|
54
|
|
55 gpointer mono_loader_find_plugin_by_class(MonoClass *klass);
|
|
56
|
|
57 GHashTable* mono_loader_get_plugin_hash();
|
|
58
|
|
59 #endif
|