comparison libpurple/plugins/mono/loader/mono-helper.h @ 15373:5fe8042783c1

Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author Sean Egan <seanegan@gmail.com>
date Sat, 20 Jan 2007 02:32:10 +0000
parents
children 32c366eeeb99
comparison
equal deleted inserted replaced
15372:f79e0f4df793 15373:5fe8042783c1
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