forked from enlightenment/efl
75 lines
1.7 KiB
C
75 lines
1.7 KiB
C
#ifdef HAVE_CONFIG_H
|
|
# include "config.h"
|
|
#endif
|
|
|
|
#include "eo_parser.h"
|
|
#include "eolian_database.h"
|
|
|
|
static int _eolian_init_counter = 0;
|
|
int _eolian_log_dom = -1;
|
|
Eina_Prefix *_eolian_prefix = NULL;
|
|
|
|
EAPI int eolian_init(void)
|
|
{
|
|
const char *log_dom = "eolian";
|
|
if (_eolian_init_counter > 0) return ++_eolian_init_counter;
|
|
|
|
eina_init();
|
|
_eolian_log_dom = eina_log_domain_register(log_dom, EINA_COLOR_LIGHTBLUE);
|
|
if (_eolian_log_dom < 0)
|
|
{
|
|
EINA_LOG_ERR("Could not register log domain: %s", log_dom);
|
|
return EINA_FALSE;
|
|
}
|
|
|
|
eina_log_timing(_eolian_log_dom,
|
|
EINA_LOG_STATE_STOP,
|
|
EINA_LOG_STATE_INIT);
|
|
|
|
INF("Init");
|
|
|
|
_eolian_prefix = eina_prefix_new(NULL, eolian_init, "EOLIAN", "eolian",
|
|
NULL, "", "", PACKAGE_DATA_DIR, "");
|
|
if (!_eolian_prefix)
|
|
{
|
|
ERR("Could not initialize the Eolian prefix.");
|
|
return EINA_FALSE;
|
|
}
|
|
|
|
eo_lexer_init();
|
|
return ++_eolian_init_counter;
|
|
}
|
|
|
|
EAPI int eolian_shutdown(void)
|
|
{
|
|
if (_eolian_init_counter <= 0)
|
|
{
|
|
EINA_LOG_ERR("Init count not greater than 0 in shutdown.");
|
|
return 0;
|
|
}
|
|
_eolian_init_counter--;
|
|
|
|
if (_eolian_init_counter == 0)
|
|
{
|
|
INF("Shutdown");
|
|
eina_log_timing(_eolian_log_dom,
|
|
EINA_LOG_STATE_START,
|
|
EINA_LOG_STATE_SHUTDOWN);
|
|
|
|
eo_lexer_shutdown();
|
|
eina_prefix_free(_eolian_prefix);
|
|
_eolian_prefix = NULL;
|
|
|
|
eina_log_domain_unregister(_eolian_log_dom);
|
|
_eolian_log_dom = -1;
|
|
eina_shutdown();
|
|
}
|
|
|
|
return _eolian_init_counter;
|
|
}
|
|
|
|
EAPI unsigned short eolian_file_format_version_get(void)
|
|
{
|
|
return EOLIAN_FILE_FORMAT_VERSION;
|
|
}
|