00001 #include "pddlModuleLoader.h" 00002 00003 PDDLModuleLoader::PDDLModuleLoader() 00004 { 00005 00006 } 00007 00008 PDDLModuleLoader::~PDDLModuleLoader() 00009 { 00010 00011 } 00012 00013 modules::conditionCheckerType PDDLModuleLoader::getConditionChecker(string fnString) 00014 { 00015 void* fn = getFunction(fnString); 00016 if(fn == NULL) 00017 return NULL; 00018 modules::conditionCheckerType ret; 00019 *(void **) (&ret) = fn; // see man page of dlsym, workaround for forbidden cast between function and object pointer 00020 return ret; 00021 //return (modules::conditionCheckerType)fn; 00022 } 00023 00024 modules::applyEffectType PDDLModuleLoader::getApplyEffect(string fnString) 00025 { 00026 void* fn = getFunction(fnString); 00027 if(fn == NULL) 00028 return NULL; 00029 modules::applyEffectType ret; 00030 *(void **) (&ret) = fn; 00031 return ret; 00032 //return (modules::applyEffectType)fn; 00033 } 00034 00035 modules::conditionCheckerType PDDLModuleLoader::getCostChecker(string fnString) 00036 { 00037 void* fn = getFunction(fnString); 00038 if(fn == NULL) 00039 return NULL; 00040 modules::conditionCheckerType ret; 00041 *(void **) (&ret) = fn; 00042 return ret; 00043 //return (modules::conditionCheckerType)fn; 00044 } 00045 00046 modules::moduleInitType PDDLModuleLoader::getModuleInit(string fnString) 00047 { 00048 void* fn = getFunction(fnString); 00049 if(fn == NULL) 00050 return NULL; 00051 modules::moduleInitType ret; 00052 *(void **) (&ret) = fn; 00053 return ret; 00054 //return (modules::moduleInitType)fn; 00055 } 00056 00057 modules::subplanGeneratorType PDDLModuleLoader::getSubplanGenerator(string fnString) 00058 { 00059 void* fn = getFunction(fnString); 00060 if(fn == NULL) 00061 return NULL; 00062 modules::subplanGeneratorType ret; 00063 *(void **) (&ret) = fn; 00064 return ret; 00065 //return (modules::subplanGeneratorType)fn; 00066 } 00067 00068 modules::outputSubplanType PDDLModuleLoader::getOutputSubplan(string fnString) 00069 { 00070 void* fn = getFunction(fnString); 00071 if(fn == NULL) 00072 return NULL; 00073 modules::outputSubplanType ret; 00074 *(void **) (&ret) = fn; 00075 return ret; 00076 //return (modules::outputSubplanType)fn; 00077 } 00078 00079 modules::executeModulePlanType PDDLModuleLoader::getExecuteModulePlan(string fnString) 00080 { 00081 void* fn = getFunction(fnString); 00082 if(fn == NULL) 00083 return NULL; 00084 modules::executeModulePlanType ret; 00085 *(void **) (&ret) = fn; 00086 return ret; 00087 //return (modules::executeModulePlanType)fn; 00088 } 00089 00090 modules::oplCallbackInitType PDDLModuleLoader::oplCalbackInit(string fnString) 00091 { 00092 void* fn = getFunction(fnString); 00093 if(fn == NULL) 00094 return NULL; 00095 modules::oplCallbackInitType ret; 00096 *(void **) (&ret) = fn; 00097 return ret; 00098 }