X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/4cac9f15932adee255ed2be1f6d419ffe068c438..06d82616a1fdc44191265284ac46dda5dbdb5eb9:/src/uobject/module.h diff --git a/src/uobject/module.h b/src/uobject/module.h index 03fe0ec..97d9e2b 100644 --- a/src/uobject/module.h +++ b/src/uobject/module.h @@ -17,40 +17,31 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -#ifndef UOBJECT_MODULE_H_ -#define UOBJECT_MODULE_H_ +#ifndef U_OBJECT_MODULE_H_ +#define U_OBJECT_MODULE_H_ #include -#include -#define UPKG_MODULE_TYPE (upkg_module_get_type()) -#define UPKG_MODULE(obj) \ - G_TYPE_CHECK_INSTANCE_CAST(obj, UPKG_MODULE_TYPE, UPkgModule) -#define UPKG_MODULE_CLASS(class) \ - G_TYPE_CHECK_CLASS_CAST(class, UPKG_MODULE_TYPE, UPkgModuleClass) -#define IS_UPKG_MODULE(obj) \ - G_TYPE_CHECK_INSTANCE_TYPE(obj, UPKG_MODULE_TYPE) -#define IS_UPKG_MODULE_CLASS(class) \ - G_TYPE_CHECK_CLASS_TYPE(class, UPKG_MODULE_TYPE, UPkgModuleClass) - -typedef struct UPkgModule UPkgModule; -typedef struct UPkgModuleClass UPkgModuleClass; - -struct UPkgModule { - GTypeModule parent; - - lt_dlhandle dl; -}; - -struct UPkgModuleClass { - GTypeModuleClass parent; -}; - -UPkgModule *upkg_module_new(const char *name); +/* + * Initialize the UObject module system. Returns 0 on success, -1 otherwise. + * The module system can be safely initialized multiple times. + */ +int u_object_module_init(void); -int module_init(void); -int module_exit(void); +/* + * Shutdown the UObject module system. Returns 0 on success, -1 otherwise. + * The module system is only shut down when this function has been called as + * many times as u_object_module_init. + */ +int u_object_module_exit(void); -GType module_get_class(const char *package, const char *class); +/* + * Get a class handle from the UObject module system. This will load the + * appropriate shared object if necessary. The resulting handle can then be + * used to create instances of the class with g_object_new. + * + * Returns 0 on failure. + */ +GType u_object_module_get_class(const char *package, const char *class); #endif