#ifndef __ERROR_CALLBACK_H__
#define __ERROR_CALLBACK_H__

extern "C" {
    typedef void (*error_cbk_t)(const char *file_name ,const char *func_name,const char *err_msg);
    extern error_cbk_t g_error_callback;

    ex_declare void  error_callback_call( const char *file_name ,const char *func_name,const char *err_msg);
    ex_declare const char *extract_filename_in_cbk(const char *full_path);


    ex_declare void    set_error_cbk(error_cbk_t cbk);
    #define MACROS_ERROR_CBK_CALL(msg) error_callback_call(__FILE__,__func__,msg)


    typedef int (*set_error_cbk_t)(error_cbk_t cbk);
}

#endif // __ERROR_CALLBACK_H__
