#include "plugins.h" #include #include #include #include #include #include struct ptx__plugin_manager_tag { size_t sz_plugins; ptx_plugin_t *plugins; }; struct ptx__plugin_handle_tag { char *path; }; ptx_plugin_manager_t *ptx_plugin_manager_new(void) { ptx_plugin_manager_t *mgr = malloc(sizeof(ptx_plugin_manager_t)); if (!mgr) return NULL; /* do init */ mgr->sz_plugins = 0; mgr->plugins = NULL; return mgr; } void ptx_plugin_manager_free(ptx_plugin_manager_t *mgr) { if (!mgr) return; /* do cleanup */ free(mgr); return; } int ptx_plugin_manager_load_dir(ptx_plugin_manager_t *mgr, const char *dirnam) { struct dirent *ent; DIR *dir = opendir(dirnam); if (!dir) { fprintf(stderr, "Failed to load plugins from %s (opendir): %s\n", dirnam, strerror(errno)); return -1; } while ((errno = 0, ent = readdir(dir))) { } if (errno != 0) { fprintf(stderr, "Error reading entries from %s (readdir): %s\n", dirnam, strerror(errno)); return -1; } return 0; }