Eolian: Add new api from q66's efl branch
This commit is contained in:
parent
1c6f42b395
commit
45e43df37c
|
@ -57,10 +57,12 @@ cdef extern from "Eolian.h":
|
||||||
|
|
||||||
|
|
||||||
Eina_Bool eolian_eo_file_parse(const char *filename)
|
Eina_Bool eolian_eo_file_parse(const char *filename)
|
||||||
|
Eina_Bool eolian_eot_file_parse(const char *filepath)
|
||||||
int eolian_init()
|
int eolian_init()
|
||||||
int eolian_shutdown()
|
int eolian_shutdown()
|
||||||
Eina_Bool eolian_directory_scan(const char *dir)
|
Eina_Bool eolian_directory_scan(const char *dir)
|
||||||
Eina_Bool eolian_all_eo_files_parse()
|
Eina_Bool eolian_all_eo_files_parse()
|
||||||
|
Eina_Bool eolian_all_eot_files_parse()
|
||||||
Eina_Bool eolian_show(const Eolian_Class klass)
|
Eina_Bool eolian_show(const Eolian_Class klass)
|
||||||
Eolian_Class eolian_class_find_by_name(const char *class_name)
|
Eolian_Class eolian_class_find_by_name(const char *class_name)
|
||||||
Eolian_Class eolian_class_find_by_file(const char *file_name)
|
Eolian_Class eolian_class_find_by_file(const char *file_name)
|
||||||
|
@ -79,6 +81,7 @@ cdef extern from "Eolian.h":
|
||||||
Eolian_Function_Type eolian_function_type_get(Eolian_Function function_id)
|
Eolian_Function_Type eolian_function_type_get(Eolian_Function function_id)
|
||||||
Eolian_Function_Scope eolian_function_scope_get(Eolian_Function function_id)
|
Eolian_Function_Scope eolian_function_scope_get(Eolian_Function function_id)
|
||||||
const char *eolian_function_name_get(Eolian_Function function_id)
|
const char *eolian_function_name_get(Eolian_Function function_id)
|
||||||
|
const char *eolian_function_full_c_name_get(Eolian_Function function_id, const char *prefix)
|
||||||
Eolian_Function eolian_class_function_find_by_name(const Eolian_Class klass, const char *func_name, Eolian_Function_Type f_type)
|
Eolian_Function eolian_class_function_find_by_name(const Eolian_Class klass, const char *func_name, Eolian_Function_Type f_type)
|
||||||
const char *eolian_function_data_get(Eolian_Function function_id, const char *key)
|
const char *eolian_function_data_get(Eolian_Function function_id, const char *key)
|
||||||
Eina_Bool eolian_function_is_virtual_pure(Eolian_Function function_id, Eolian_Function_Type f_type)
|
Eina_Bool eolian_function_is_virtual_pure(Eolian_Function function_id, Eolian_Function_Type f_type)
|
||||||
|
|
|
@ -148,6 +148,19 @@ def eo_file_parse(filename):
|
||||||
EINA_LOG_DOM_WARN(EOLIAN_DOM, "Failure in eo_file_parse()", NULL)
|
EINA_LOG_DOM_WARN(EOLIAN_DOM, "Failure in eo_file_parse()", NULL)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def eot_file_parse(filename):
|
||||||
|
"""Parse a given .eot file and fill the database.
|
||||||
|
|
||||||
|
:param filename: Name of the file to parse.
|
||||||
|
:see: :func:`eolian_eo_file_parse`
|
||||||
|
|
||||||
|
"""
|
||||||
|
if isinstance(filename, unicode): filename = PyUnicode_AsUTF8String(filename)
|
||||||
|
cdef bint ret = eolian_eot_file_parse(filename)
|
||||||
|
if not ret:
|
||||||
|
EINA_LOG_DOM_WARN(EOLIAN_DOM, "Failure in eot_file_parse()", NULL)
|
||||||
|
return ret
|
||||||
|
|
||||||
def init():
|
def init():
|
||||||
"""Init Eolian.
|
"""Init Eolian.
|
||||||
|
|
||||||
|
@ -183,7 +196,7 @@ def directory_scan(directory):
|
||||||
|
|
||||||
def all_eo_files_parse():
|
def all_eo_files_parse():
|
||||||
"""Force parsing of all the files located in the directories
|
"""Force parsing of all the files located in the directories
|
||||||
given in eolian_directory_scan..
|
given in eolian_directory_scan.
|
||||||
|
|
||||||
:return: True on success, False otherwise.
|
:return: True on success, False otherwise.
|
||||||
|
|
||||||
|
@ -195,6 +208,20 @@ def all_eo_files_parse():
|
||||||
EINA_LOG_DOM_WARN(EOLIAN_DOM, "Failure in all_eo_files_parse()", NULL)
|
EINA_LOG_DOM_WARN(EOLIAN_DOM, "Failure in all_eo_files_parse()", NULL)
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def all_eot_files_parse():
|
||||||
|
"""Force parsing of all the .eot files located in the directories
|
||||||
|
given in eolian_directory_scan.
|
||||||
|
|
||||||
|
:return: True on success, False otherwise.
|
||||||
|
|
||||||
|
:see: :py:func:`directory_scan`
|
||||||
|
|
||||||
|
"""
|
||||||
|
cdef bint ret = eolian_all_eot_files_parse()
|
||||||
|
if not ret:
|
||||||
|
EINA_LOG_DOM_WARN(EOLIAN_DOM, "Failure in all_eot_files_parse()", NULL)
|
||||||
|
return ret
|
||||||
|
|
||||||
def show(Class klass=None):
|
def show(Class klass=None):
|
||||||
"""Show information about a given class.
|
"""Show information about a given class.
|
||||||
|
|
||||||
|
@ -491,6 +518,21 @@ cdef class Function(object):
|
||||||
def __get__(self):
|
def __get__(self):
|
||||||
return _ctouni(eolian_function_name_get(self.function_id))
|
return _ctouni(eolian_function_name_get(self.function_id))
|
||||||
|
|
||||||
|
def full_c_name_get(self, prefix):
|
||||||
|
"""Returns the full C name of a function (with prefix). It's here
|
||||||
|
because the C API names are deduplicated (prefix of function and suffix
|
||||||
|
of prefix merge if applicable) and this helps generators not write the
|
||||||
|
same code over and over.
|
||||||
|
|
||||||
|
:param prefix: function prefix
|
||||||
|
:type prefix: string
|
||||||
|
:return: the function name
|
||||||
|
:rtype: string
|
||||||
|
|
||||||
|
"""
|
||||||
|
if isinstance(prefix, unicode): prefix = PyUnicode_AsUTF8String(prefix)
|
||||||
|
return _ctouni(eolian_function_full_c_name_get(self.function_id, prefix))
|
||||||
|
|
||||||
def data_get(self, key):
|
def data_get(self, key):
|
||||||
"""Returns a specific data for a function.
|
"""Returns a specific data for a function.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue