#ifndef _PLUGIN_MANAGER_UTIL_H #define _PLUGIN_MANAGER_UTIL_H #ifdef __cpluscplus extern "C" { #endif #include #include #include "sdk/include/session.h" #define MAX_PLUGIN_NUM 512 #define MAX_SESSION_NAME_LENGTH 32 /****************************************************************************** * Malloc ******************************************************************************/ #define safe_alloc(type, number) ((type *)calloc(number, sizeof(type))) #define safe_free(ptr) \ { \ if (ptr) \ { \ free(ptr); \ ptr = NULL; \ } \ } char *safe_dup(const char *str); /****************************************************************************** * Logger ******************************************************************************/ enum plugin_manager_log_level { DEBUG = 0x11, WARN = 0x12, INFO = 0x13, ERROR = 0x14, }; #ifndef plugin_manager_log #define plugin_manager_log(level, format, ...) \ { \ switch (level) \ { \ case DEBUG: \ fprintf(stdout, "PLUGIN_MANAGER [DEBUG] " format "\n", ##__VA_ARGS__); \ fflush(stdout); \ break; \ case WARN: \ fprintf(stdout, "PLUGIN_MANAGER [WARN] " format "\n", ##__VA_ARGS__); \ fflush(stdout); \ break; \ case INFO: \ fprintf(stdout, "PLUGIN_MANAGER [INFO] " format "\n", ##__VA_ARGS__); \ fflush(stdout); \ break; \ case ERROR: \ fprintf(stderr, "PLUGIN_MANAGER [ERROR] " format "\n", ##__VA_ARGS__); \ fflush(stderr); \ break; \ } \ } #endif /****************************************************************************** * Session Event Type ******************************************************************************/ enum session_event_type session_event_type_str2int(const char *evtype_str); void session_event_type_int2str(enum session_event_type evtype_int, char *buffer, int size); #ifdef __cpluscplus } #endif #endif