]> git.draconx.ca Git - upkg.git/blobdiff - src/module.h
Implement dynamic loading of modules.
[upkg.git] / src / module.h
index ea52071779941724e4bc490bb5f7a503037e07e2..103bf266f1ccbe85708bec50f498f334fd946709 100644 (file)
@@ -1,6 +1,34 @@
 #ifndef MODULE_H_
 #define MODULE_H_
 
+#include <glib-object.h>
+#include <ltdl.h>
+
+#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);
+
 int module_init(void);
 int module_exit(void);