summaryrefslogtreecommitdiff
path: root/src/plugin_manager/plugin_manager_util.h
blob: 890e61db85d039645a02c67b44e4c7a78e38be74 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#ifndef _PLUGIN_MANAGER_UTIL_H
#define _PLUGIN_MANAGER_UTIL_H

#ifdef __cpluscplus
extern "C"
{
#endif

#include <stdio.h>
#include <stdlib.h>

#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