X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/9d3cb178db367962f68521985ef9e239e1d03fa9..82202f3afe5b662d6896e91903e491630c1ec7dd:/src/module.h diff --git a/src/module.h b/src/module.h index ea52071..eacca8d 100644 --- a/src/module.h +++ b/src/module.h @@ -1,7 +1,56 @@ +/* + * upkg: tool for manipulating Unreal Tournament packages. + * Copyright (C) 2009 Nick Bowler + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + #ifndef MODULE_H_ #define 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); + int module_init(void); int module_exit(void); +GType module_get_class(const char *package, const char *class); + #endif