24 #include "modulemgr.h"
25 #include <xplc/IModuleLoader.h>
39 # define NAMLEN(dirent) strlen((dirent)->d_name)
41 # define dirent direct
42 # define NAMLEN(dirent) (dirent)->d_namlen
44 # include <sys/ndir.h>
73 next(aNext), module(aModule) {
82 #if defined(SOLARIS) || defined(MACOS)
86 IServiceHandler* ModuleManagerFactory::createModuleManager(
const char* directory) {
98 loader = mutate<IModuleLoader>(servmgr->
getObject(XPLC_moduleLoader));
103 dir = opendir(directory);
110 while((ent = readdir(dir))) {
113 snprintf(fname, PATH_MAX,
"%s/%s", directory, ent->d_name);
115 module = loader->loadModule(fname);
143 loader = mutate<IModuleLoader>(servmgr->
getObject(XPLC_moduleLoader));
148 snprintf(pattern,
sizeof(pattern),
"%s/*.*", directory);
150 dir = _findfirst(pattern, &ent);
160 _snprintf(fname,
sizeof(fname),
"%s/%s", directory, ent.name);
162 module = loader->loadModule(fname);
169 }
while(_findnext(dir, &ent) == 0);
179 ModuleManager::ModuleManager(
ModuleNode* aModules):
198 ModuleManager::~ModuleManager() {