# DPM Development Kit (DPMDK) Core interface definitions for developing Dark Horse Package Manager modules. ## Purpose DPMDK provides the essential interface that all DPM modules must implement to be compatible with the DPM module loading system. ## Required Module Implementation Every DPM module must implement these functions: ```cpp extern "C" const char* dpm_module_get_version(void); extern "C" const char* dpm_get_description(void); extern "C" int dpm_module_execute(const char* command, int argc, char** argv); ``` ## Core Functions Available to Modules The DPM core provides these functions for modules to use: ```cpp extern "C" const char* dpm_get_config(const char* section, const char* key); extern "C" void dpm_log(int level, const char* message); ``` ### Logging Levels DPMDK defines the following constants for use with the `dpm_log` function: ```cpp LOG_FATAL = 0 // Critical errors causing termination LOG_ERROR = 1 // Errors preventing operation completion LOG_WARN = 2 // Warning conditions LOG_INFO = 3 // Informational messages LOG_DEBUG = 4 // Detailed debugging information ``` ## Example Usage ```cpp #include #define MODULE_VERSION "0.1.0" extern "C" const char* dpm_module_get_version(void) { return MODULE_VERSION; } extern "C" const char* dpm_get_description(void) { return "Example DPM module"; } extern "C" int dpm_module_execute(const char* command, int argc, char** argv) { dpm_log(LOG_INFO, "Module execution started"); const char* config_value = dpm_get_config("section_name", "key_name"); // Module implementation... return 0; // Success } ``` ## Reference Module See the `info` module in the DPM-Core repository for a complete implementation example. ## License GNU Affero General Public License v3.0