Mercurial > pidgin
view plugins/mono/loader/mono-helper.h @ 11660:a3302d271199
[gaim-migrate @ 13945]
Thanks to the hard work of Eoin 'ecoffey' Coffey, here is the mono plugin loader.
It needs a lot of api wrapping a bit more autotools loving, but with the basic API that is wrapped, it works quite well.
committer: Tailor Script <tailor@pidgin.im>
author | Gary Kramlich <grim@reaperworld.com> |
---|---|
date | Fri, 14 Oct 2005 05:00:17 +0000 |
parents | |
children | 565d2e437c04 |
line wrap: on
line source
#ifndef _GAIM_MONO_LOADER_MONO_HELPER_H_ #define _GAIM_MONO_LOADER_MONO_HELPER_H_ #include <mono/jit/jit.h> #include <mono/metadata/object.h> #include <mono/metadata/environment.h> #include <mono/metadata/assembly.h> #include <mono/metadata/debug-helpers.h> #include <mono/metadata/tokentype.h> #include "plugin.h" #include "value.h" #include "debug.h" typedef struct { GaimPlugin *plugin; MonoAssembly *assm; MonoClass *klass; MonoObject *obj; MonoMethod *init; MonoMethod *load; MonoMethod *unload; MonoMethod *destroy; } GaimMonoPlugin; MonoClass* mono_loader_find_plugin_class(MonoImage *image); gchar* mono_loader_get_prop_string(MonoObject *obj, char *field); void mono_loader_set_prop_string(MonoObject *obj, char *field, char *data); gboolean mono_loader_is_api_dll(MonoImage *image); MonoDomain* mono_loader_get_domain(void); void mono_loader_set_domain(MonoDomain *d); void mono_loader_init_internal_calls(void); MonoObject* mono_loader_object_from_gaim_type(GaimType type, gpointer data); MonoObject* mono_loader_object_from_gaim_subtype(GaimSubType type, gpointer data); void mono_loader_set_api_image(MonoImage *image); MonoImage* mono_loader_get_api_image(); /* hash table stuff; probably don't need it anymore */ void mono_loader_add_plugin(GaimMonoPlugin *plugin); gboolean mono_loader_remove_plugin(GaimMonoPlugin *plugin); gpointer mono_loader_find_plugin(GaimMonoPlugin *plugin); gpointer mono_loader_find_plugin_by_class(MonoClass *klass); GHashTable* mono_loader_get_plugin_hash(); #endif