#ifndef __LOGFACTORY_H__ #define __LOGFACTORY_H__ #pragma once #include "list.h" #ifdef __cplusplus extern "C" { #endif typedef struct logfactory_t { struct list_head entry; char* name; void (*destroy)(void* self); void* (*create_log)(void* self, const char* inst); int (*set_log_param)(void* self, void* log, const char* key, const char* value); int (*init_log)(void* self, void* log); int (*term_log)(void* self, void* log); void (*destroy_log)(void* self, void* log); int (*record_log)(void* self, void* log, int level, unsigned long ts_low, unsigned long ts_high, const char* s, int n); }logfactory_t; static __inline void logfactory_destroy(void* self) { logfactory_t* fac = (logfactory_t*)self; (*fac->destroy)(self); } static __inline void* logfactory_create_log(void* self, const char* inst) { logfactory_t* fac = (logfactory_t*)self; return (*fac->create_log)(self, inst); } static __inline int logfactory_set_log_param(void* self, void* log, const char* key, const char* value) { logfactory_t* fac = (logfactory_t*)self; return (*fac->set_log_param)(self, log, key, value); } static __inline int logfactory_init_log(void* self, void* log) { logfactory_t* fac = (logfactory_t*)self; return (*fac->init_log)(self, log); } static __inline int logfactory_term_log(void* self, void* log) { logfactory_t* fac = (logfactory_t*)self; return (*fac->term_log)(self, log); } static __inline void logfactory_destroy_log(void* self, void* log) { logfactory_t* fac = (logfactory_t*)self; (*fac->destroy_log)(self, log); } static __inline int logfactory_log_record(void* self, void* log, int level, unsigned long ts_low, unsigned long ts_high, const char* s, int n) { logfactory_t* fac = (logfactory_t*)self; return (*fac->record_log)(self, log, level, ts_low, ts_high, s, n); } const char* log_level2str(int level); #ifdef __cplusplus } #endif #endif //__LOGFACTORY_H__