00001
00002
00003
00004
00005 #ifndef _MODULE_H
00006 #define _MODULE_H
00007
00008 #include <stdio.h>
00009 #include <float.h>
00010 #include "object.h"
00011
00012 #include "test_callbacks.h"
00013
00014 struct s_module_list {
00015 void *hLib;
00016 char name[1024];
00017 CLASS *oclass;
00018 unsigned short major;
00019 unsigned short minor;
00020 void* (*getvar)(char *varname,char *value,unsigned int size);
00021 int (*setvar)(char *varname,char *value);
00022 int (*import_file)(char *file);
00023 int (*export_file)(char *file);
00024 int (*check)();
00025 #ifndef _NO_CPPUNIT
00026 int (*module_test)(TEST_CALLBACKS *callbacks,int argc,char* argv[]);
00027 #endif
00028 int (*cmdargs)(int,char**);
00029 int (*kmldump)(FILE*fp,OBJECT*);
00030 void (*test)(int argc, char *argv[]);
00031 MODULE *(*subload)(char *, MODULE **, CLASS **, int, char **);
00032 PROPERTY *globals;
00033 struct s_module_list *next;
00034 };
00035
00036 #ifndef _MODULE_DEFINED_
00037 #define _MODULE_DEFINED_
00038 typedef struct s_module_list MODULE;
00039 #endif
00040
00041 typedef CLASS *(*LIBINIT)(const CALLBACKS*,void*,int,char*[]);
00042
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046 int module_get_exe_path(char *buf, int len);
00047 int module_get_path(char *buf, int len, MODULE *mod);
00048 MODULE *module_find(char *module_name);
00049 MODULE *module_load(const char *file, int argc, char *argv[]);
00050 void* module_getvar(MODULE *mod, char *varname, char *value, unsigned int size);
00051 double *module_getvar_addr(MODULE *mod, char *varname);
00052 int module_depends(char *name, unsigned char major, unsigned char minor, unsigned short build);
00053 int module_setvar(MODULE *mod, char *varname, char *value);
00054 int module_import(MODULE *mod, char *filename);
00055 int module_check(MODULE *mod);
00056 int module_checkall();
00057 int module_saveall(FILE *fp);
00058 int module_saveall_xml(FILE *fp);
00059 int module_dumpall();
00060 void module_libinfo(char *module_name);
00061 #ifndef _NO_CPPUNIT
00062 int module_test(TEST_CALLBACKS *callbacks,int argc,char* argv[]);
00063 #endif
00064 int module_cmdargs(int argc, char **argv);
00065 int module_saveobj_xml(FILE *fp, MODULE *mod);
00066 MODULE *module_get_first();
00067 #ifdef __cplusplus
00068 }
00069 #endif
00070
00071 #endif