Add gswe_find_*_info() functions to find registered Gswe*Info objects
This commit is contained in:
		@@ -60,6 +60,7 @@ gswe_moon_phase_data_get_type
 | 
				
			|||||||
<SECTION>
 | 
					<SECTION>
 | 
				
			||||||
<FILE>gswe-sign-info</FILE>
 | 
					<FILE>gswe-sign-info</FILE>
 | 
				
			||||||
GsweSignInfo
 | 
					GsweSignInfo
 | 
				
			||||||
 | 
					gswe_find_sign_info_by_id
 | 
				
			||||||
gswe_sign_info_new
 | 
					gswe_sign_info_new
 | 
				
			||||||
gswe_sign_info_ref
 | 
					gswe_sign_info_ref
 | 
				
			||||||
gswe_sign_info_unref
 | 
					gswe_sign_info_unref
 | 
				
			||||||
@@ -79,6 +80,7 @@ gswe_sign_info_get_type
 | 
				
			|||||||
<SECTION>
 | 
					<SECTION>
 | 
				
			||||||
<FILE>gswe-planet-info</FILE>
 | 
					<FILE>gswe-planet-info</FILE>
 | 
				
			||||||
GswePlanetInfo
 | 
					GswePlanetInfo
 | 
				
			||||||
 | 
					gswe_find_planet_info_by_id
 | 
				
			||||||
gswe_planet_info_new
 | 
					gswe_planet_info_new
 | 
				
			||||||
gswe_planet_info_ref
 | 
					gswe_planet_info_ref
 | 
				
			||||||
gswe_planet_info_unref
 | 
					gswe_planet_info_unref
 | 
				
			||||||
@@ -122,6 +124,7 @@ gswe_planet_data_get_type
 | 
				
			|||||||
<SECTION>
 | 
					<SECTION>
 | 
				
			||||||
<FILE>gswe-aspect-info</FILE>
 | 
					<FILE>gswe-aspect-info</FILE>
 | 
				
			||||||
GsweAspectInfo
 | 
					GsweAspectInfo
 | 
				
			||||||
 | 
					gswe_find_aspect_info_by_id
 | 
				
			||||||
gswe_aspect_info_new
 | 
					gswe_aspect_info_new
 | 
				
			||||||
gswe_aspect_info_ref
 | 
					gswe_aspect_info_ref
 | 
				
			||||||
gswe_aspect_info_unref
 | 
					gswe_aspect_info_unref
 | 
				
			||||||
@@ -165,6 +168,7 @@ gswe_aspect_data_get_type
 | 
				
			|||||||
<SECTION>
 | 
					<SECTION>
 | 
				
			||||||
<FILE>gswe-antiscion-axis-info</FILE>
 | 
					<FILE>gswe-antiscion-axis-info</FILE>
 | 
				
			||||||
GsweAntiscionAxisInfo
 | 
					GsweAntiscionAxisInfo
 | 
				
			||||||
 | 
					gswe_find_antiscion_axis_info_by_id
 | 
				
			||||||
gswe_antiscion_axis_info_new
 | 
					gswe_antiscion_axis_info_new
 | 
				
			||||||
gswe_antiscion_axis_info_ref
 | 
					gswe_antiscion_axis_info_ref
 | 
				
			||||||
gswe_antiscion_axis_info_unref
 | 
					gswe_antiscion_axis_info_unref
 | 
				
			||||||
@@ -206,6 +210,7 @@ gswe_antiscion_data_get_type
 | 
				
			|||||||
<SECTION>
 | 
					<SECTION>
 | 
				
			||||||
<FILE>gswe-house-system-info</FILE>
 | 
					<FILE>gswe-house-system-info</FILE>
 | 
				
			||||||
GsweHouseSystemInfo
 | 
					GsweHouseSystemInfo
 | 
				
			||||||
 | 
					gswe_find_house_system_info_by_id
 | 
				
			||||||
gswe_house_system_info_new
 | 
					gswe_house_system_info_new
 | 
				
			||||||
gswe_house_system_info_ref
 | 
					gswe_house_system_info_ref
 | 
				
			||||||
gswe_house_system_info_unref
 | 
					gswe_house_system_info_unref
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -241,3 +241,98 @@ gswe_init(void)
 | 
				
			|||||||
    gswe_init_with_dir(PKGDATADIR);
 | 
					    gswe_init_with_dir(PKGDATADIR);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * gswe_find_planet_info_by_id:
 | 
				
			||||||
 | 
					 * @planet: a planet ID registered with SWE-GLib
 | 
				
			||||||
 | 
					 * @err: a GError
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Find the #GswePlanetInfo record registered with the id @planet.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					GswePlanetInfo *
 | 
				
			||||||
 | 
					gswe_find_planet_info_by_id(GswePlanet planet, GError **err)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    GswePlanetInfo *ret = g_hash_table_lookup(gswe_planet_info_table, GINT_TO_POINTER(planet));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ret == NULL) {
 | 
				
			||||||
 | 
					        g_set_error(err, GSWE_ERROR, GSWE_ERROR_UNKNOWN_PLANET, "Planet %d is not registered", planet);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return ret;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * gswe_find_sign_info_by_id:
 | 
				
			||||||
 | 
					 * @sign: a sign ID registered with SWE-GLib
 | 
				
			||||||
 | 
					 * @err: a GError
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Find the #GsweSignInfo record registered with the id @sign.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					GsweSignInfo *
 | 
				
			||||||
 | 
					gswe_find_sign_info_by_id(GsweZodiac sign, GError **err)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    GsweSignInfo *ret = g_hash_table_lookup(gswe_sign_info_table, GINT_TO_POINTER(sign));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ret == NULL) {
 | 
				
			||||||
 | 
					        g_set_error(err, GSWE_ERROR, GSWE_ERROR_UNKNOWN_SIGN, "Sign %d is not registered", sign);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return ret;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * gswe_find_house_system_info_by_id:
 | 
				
			||||||
 | 
					 * @house_system: a house system ID registered with SWE-GLib
 | 
				
			||||||
 | 
					 * @err: a GError
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Find the #GsweHouseSystemInfo record registered with the id @house_system.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					GsweHouseSystemInfo *
 | 
				
			||||||
 | 
					gswe_find_house_system_info_by_id(GsweHouseSystem house_system, GError **err)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    GsweHouseSystemInfo *ret = g_hash_table_lookup(gswe_house_system_info_table, GINT_TO_POINTER(house_system));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ret == NULL) {
 | 
				
			||||||
 | 
					        g_set_error(err, GSWE_ERROR, GSWE_ERROR_UNKNOWN_HSYS, "House system %d is not registered", house_system);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return ret;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * gswe_find_aspect_info_by_id:
 | 
				
			||||||
 | 
					 * @aspect: an aspect ID registered with SWE-GLib
 | 
				
			||||||
 | 
					 * @err: a GError
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Find the #GsweAspectInfo record registered with the id @aspect.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					GsweAspectInfo *
 | 
				
			||||||
 | 
					gswe_find_aspect_info_by_id(GsweAspect aspect, GError **err)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    GsweAspectInfo *ret = g_hash_table_lookup(gswe_aspect_info_table, GINT_TO_POINTER(aspect));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ret == NULL) {
 | 
				
			||||||
 | 
					        g_set_error(err, GSWE_ERROR, GSWE_ERROR_UNKNOWN_ASPECT, "Aspect system %d is not registered", aspect);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return ret;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * gswe_find_antiscion_axis_info_by_id:
 | 
				
			||||||
 | 
					 * @antiscion_axis: an antiscion axis ID registered with SWE-GLib
 | 
				
			||||||
 | 
					 * @err: a GError
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Find the #GsweAntiscionAxisInfo record registered with the id @antiscion_axis.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					GsweAntiscionAxisInfo *
 | 
				
			||||||
 | 
					gswe_find_antiscion_axis_info_by_id(GsweAntiscionAxis antiscion_axis, GError **err)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    GsweAntiscionAxisInfo *ret = g_hash_table_lookup(gswe_antiscion_axis_info_table, GINT_TO_POINTER(antiscion_axis));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (ret == NULL) {
 | 
				
			||||||
 | 
					        g_set_error(err, GSWE_ERROR, GSWE_ERROR_UNKNOWN_ANTISCION_AXIS, "Antiscion axis system %d is not registered", antiscion_axis);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return ret;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,6 +47,7 @@
 | 
				
			|||||||
 * @GSWE_ERROR_UNKNOWN_PLANET: the referenced planet was not added with
 | 
					 * @GSWE_ERROR_UNKNOWN_PLANET: the referenced planet was not added with
 | 
				
			||||||
 *                             gswe_moment_add_planet()
 | 
					 *                             gswe_moment_add_planet()
 | 
				
			||||||
 * @GSWE_ERROR_UNKNOWN_ANTISCION_AXIS: the given axis is unknown to SWE-GLib
 | 
					 * @GSWE_ERROR_UNKNOWN_ANTISCION_AXIS: the given axis is unknown to SWE-GLib
 | 
				
			||||||
 | 
					 * @GSWE_ERROR_UNKNOWN_ASPECT: the given aspect is unknown to SWE-GLib
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Error codes returned by the SWE-GLib functions.
 | 
					 * Error codes returned by the SWE-GLib functions.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -61,6 +62,7 @@ typedef enum {
 | 
				
			|||||||
    GSWE_ERROR_UNKNOWN_SIGN,
 | 
					    GSWE_ERROR_UNKNOWN_SIGN,
 | 
				
			||||||
    GSWE_ERROR_UNKNOWN_PLANET,
 | 
					    GSWE_ERROR_UNKNOWN_PLANET,
 | 
				
			||||||
    GSWE_ERROR_UNKNOWN_ANTISCION_AXIS,
 | 
					    GSWE_ERROR_UNKNOWN_ANTISCION_AXIS,
 | 
				
			||||||
 | 
					    GSWE_ERROR_UNKNOWN_ASPECT,
 | 
				
			||||||
} GsweError;
 | 
					} GsweError;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -74,6 +76,11 @@ typedef enum {
 | 
				
			|||||||
GQuark gswe_error_quark(void);
 | 
					GQuark gswe_error_quark(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void gswe_init();
 | 
					void gswe_init();
 | 
				
			||||||
 | 
					GswePlanetInfo *gswe_find_planet_info_by_id(GswePlanet planet, GError **err);
 | 
				
			||||||
 | 
					GsweSignInfo *gswe_find_sign_info_by_id(GsweZodiac sign, GError **err);
 | 
				
			||||||
 | 
					GsweHouseSystemInfo *gswe_find_house_system_info_by_id(GsweHouseSystem house_system, GError **err);
 | 
				
			||||||
 | 
					GsweAspectInfo *gswe_find_aspect_info_by_id(GsweAspect aspect, GError **err);
 | 
				
			||||||
 | 
					GsweAntiscionAxisInfo *gswe_find_antiscion_axis_info_by_id(GsweAntiscionAxis antiscion_axis, GError **err);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* __SWE_GLIB_H__ */
 | 
					#endif /* __SWE_GLIB_H__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user