diff options
author | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2018-03-01 11:42:30 +0100 |
---|---|---|
committer | Daniel Kolesa <d.kolesa@osg.samsung.com> | 2018-03-01 12:16:28 +0100 |
commit | d6382f3f2bf74850c404ec92553e444bd8726248 (patch) | |
tree | 14614b1c43b2f8ec604a190d960d6b1d0a375088 | |
parent | ca9326767052e2cb61200d71a38b66cc84a6b18d (diff) | |
download | efl-d6382f3f2bf74850c404ec92553e444bd8726248.tar.gz |
eolian: new APIs for class retrieval
-rw-r--r-- | src/lib/eolian/Eolian.h | 65 | ||||
-rw-r--r-- | src/lib/eolian/database_class_api.c | 26 | ||||
-rw-r--r-- | src/lib/eolian/eolian_database.c | 57 |
3 files changed, 102 insertions, 46 deletions
diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index a47115f148..b7f5b6bc66 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -659,6 +659,35 @@ EAPI const Eolian_Unit *eolian_state_unit_by_file_get(const Eolian_State *state, EAPI Eina_Iterator *eolian_state_units_get(const Eolian_State *state); /* + * @brief Get a class within a state by name. + * + * @param[in] state The state. + * @param[in] class_name The full name of the class. + * + * @ingroup Eolian + */ +EAPI const Eolian_Class *eolian_state_class_by_name_get(const Eolian_State *state, const char *class_name); + +/* + * @brief Get a class within a state by file name (class_name.eo). + * + * @param[in] state The state. + * @param[in] file_name The full name of the class. + * + * @ingroup Eolian + */ +EAPI const Eolian_Class *eolian_state_class_by_file_get(const Eolian_State *state, const char *file_name); + +/* + * @brief Get an iterator to all the classes stored into a state. + * + * @param[in] state The Eolian state. + * + * @ingroup Eolian + */ +EAPI Eina_Iterator *eolian_state_classes_get(const Eolian_State *state); + +/* * @brief Get the children (dependencies) of a unit. * * The iterator is obviously again to `const Eolian_Unit *`. @@ -682,26 +711,23 @@ EAPI Eina_Iterator *eolian_unit_children_get(const Eolian_Unit *unit); EAPI const char *eolian_unit_file_get(const Eolian_Unit *unit); /* - * @brief Gets a class by its name + * @brief Get a class within a unit by name. * - * @param[in] unit the unit to look in - * @param[in] class_name name of the class to get. - * @return the class + * @param[in] unit The unit. + * @param[in] class_name The full name of the class. * * @ingroup Eolian */ -EAPI const Eolian_Class *eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name); +EAPI const Eolian_Class *eolian_unit_class_by_name_get(const Eolian_Unit *unit, const char *class_name); /* - * @brief Gets a class by its filename (name.eo) + * @brief Get an iterator to all the classes stored into a unit. * - * @param[in] unit the unit to look in - * @param[in] file_name the filename - * @return the class stored in the file + * @param[in] unit The Eolian unit. * * @ingroup Eolian */ -EAPI const Eolian_Class *eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name); +EAPI Eina_Iterator *eolian_unit_classes_get(const Eolian_Unit *unit); /* * @brief Returns the name of the file containing the given class. @@ -757,16 +783,6 @@ EAPI Eina_Iterator *eolian_class_namespaces_get(const Eolian_Class *klass); EAPI Eolian_Class_Type eolian_class_type_get(const Eolian_Class *klass); /* - * @brief Returns an iterator to all the classes stored into the database. - * - * @param[in] unit the unit to look in - * @return the iterator - * - * @ingroup Eolian - */ -EAPI Eina_Iterator *eolian_all_classes_get(const Eolian_Unit *unit); - -/* * @brief Returns the documentation of a class. * * @param[in] klass the class @@ -2690,6 +2706,15 @@ EAPI Eina_Iterator *eolian_all_eo_files_get(const Eolian_State *state); /* DEPRECATED */ EAPI Eina_Iterator *eolian_all_eot_files_get(const Eolian_State *state); +/* DEPRECATED */ +EAPI const Eolian_Class *eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name); + +/* DEPRECATED */ +EAPI const Eolian_Class *eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name); + +/* DEPRECATED */ +EAPI Eina_Iterator *eolian_all_classes_get(const Eolian_Unit *unit); + #endif /** diff --git a/src/lib/eolian/database_class_api.c b/src/lib/eolian/database_class_api.c index dbb6dee56e..2703d0e200 100644 --- a/src/lib/eolian/database_class_api.c +++ b/src/lib/eolian/database_class_api.c @@ -31,26 +31,6 @@ eolian_class_namespaces_get(const Eolian_Class *cl) : NULL); } -EAPI const Eolian_Class * -eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name) -{ - if (!unit) return NULL; - Eina_Stringshare *shr = eina_stringshare_add(class_name); - Eolian_Class *cl = eina_hash_find(unit->classes, shr); - eina_stringshare_del(shr); - return cl; -} - -EAPI const Eolian_Class * -eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name) -{ - if (!unit) return NULL; - Eina_Stringshare *shr = eina_stringshare_add(file_name); - Eolian_Class *cl = eina_hash_find(unit->state->classes_f, shr); - eina_stringshare_del(shr); - return cl; -} - EAPI Eolian_Class_Type eolian_class_type_get(const Eolian_Class *cl) { @@ -58,12 +38,6 @@ eolian_class_type_get(const Eolian_Class *cl) return cl->type; } -EAPI Eina_Iterator * -eolian_all_classes_get(const Eolian_Unit *unit) -{ - return (unit ? eina_hash_iterator_data_new(unit->classes) : NULL); -} - EAPI const Eolian_Documentation * eolian_class_documentation_get(const Eolian_Class *cl) { diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index 6491f64cab..ada3062f3e 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -934,6 +934,28 @@ eolian_state_units_get(const Eolian_State *state) return eina_hash_iterator_data_new(state->units); } +EAPI const Eolian_Class * +eolian_state_class_by_name_get(const Eolian_State *state, const char *class_name) +{ + return eolian_unit_class_by_name_get((Eolian_Unit *)state, class_name); +} + +EAPI const Eolian_Class * +eolian_state_class_by_file_get(const Eolian_State *state, const char *file_name) +{ + if (!state) return NULL; + Eina_Stringshare *shr = eina_stringshare_add(file_name); + Eolian_Class *cl = eina_hash_find(state->classes_f, shr); + eina_stringshare_del(shr); + return cl; +} + +EAPI Eina_Iterator * +eolian_state_classes_get(const Eolian_State *state) +{ + return eolian_unit_classes_get((Eolian_Unit *)state); +} + EAPI Eina_Iterator * eolian_unit_children_get(const Eolian_Unit *unit) { @@ -948,6 +970,41 @@ eolian_unit_file_get(const Eolian_Unit *unit) return unit->file; } +EAPI const Eolian_Class * +eolian_unit_class_by_name_get(const Eolian_Unit *unit, const char *class_name) +{ + if (!unit) return NULL; + Eina_Stringshare *shr = eina_stringshare_add(class_name); + Eolian_Class *cl = eina_hash_find(unit->classes, shr); + eina_stringshare_del(shr); + return cl; +} + +EAPI Eina_Iterator * +eolian_unit_classes_get(const Eolian_Unit *unit) +{ + return (unit ? eina_hash_iterator_data_new(unit->classes) : NULL); +} + +EAPI const Eolian_Class * +eolian_class_get_by_name(const Eolian_Unit *unit, const char *class_name) +{ + return eolian_unit_class_by_name_get(unit, class_name); +} + +EAPI const Eolian_Class * +eolian_class_get_by_file(const Eolian_Unit *unit, const char *file_name) +{ + if (!unit) return NULL; + return eolian_state_class_by_file_get(unit->state, file_name); +} + +EAPI Eina_Iterator * +eolian_all_classes_get(const Eolian_Unit *unit) +{ + return eolian_unit_classes_get(unit); +} + char * database_class_to_filename(const char *cname) { |