emergency-call-types: Make data structures public

This allows us to use them in tests

Signed-off-by: Guido Günther <agx@sigxcpu.org>
Part-of: <https://gitlab.gnome.org/GNOME/calls/-/merge_requests/790>
This commit is contained in:
Guido Günther
2025-09-07 17:43:26 +02:00
committed by Marge Bot
parent b5e944193e
commit f95370eddc
2 changed files with 20 additions and 17 deletions

View File

@@ -20,11 +20,6 @@
* TODO: parse the actual database for dynamic updates and broader coverage * TODO: parse the actual database for dynamic updates and broader coverage
*/ */
typedef struct {
char *number;
CallsEmergencyCallTypeFlags flags;
} CallsEmergencyNumber;
typedef struct { typedef struct {
char *country_code; char *country_code;
CallsEmergencyNumber numbers[3]; CallsEmergencyNumber numbers[3];
@@ -239,17 +234,15 @@ CallsEmergencyNumberTypes emergency_number_types[] = {
}; };
static void void
calls_emergency_number_free (gpointer data) calls_emergency_number_free (CallsEmergencyNumber *emergency_number)
{ {
CallsEmergencyNumber *emergency_number = data;
g_free (emergency_number->number); g_free (emergency_number->number);
g_free (emergency_number); g_free (emergency_number);
} }
static CallsEmergencyNumber * CallsEmergencyNumber *
calls_emergency_number_new (const char *number, CallsEmergencyCallTypeFlags flags) calls_emergency_number_new (const char *number, CallsEmergencyCallTypeFlags flags)
{ {
CallsEmergencyNumber *emergency_number; CallsEmergencyNumber *emergency_number;
@@ -262,17 +255,15 @@ calls_emergency_number_new (const char *number, CallsEmergencyCallTypeFlags flag
} }
static void void
calls_emergency_call_country_data_free (gpointer data) calls_emergency_call_country_data_free (CallsEmergencyCallCountryData *country_data)
{ {
CallsEmergencyCallCountryData *country_data = data;
g_ptr_array_unref (country_data->numbers); g_ptr_array_unref (country_data->numbers);
g_free (country_data); g_free (country_data);
} }
static CallsEmergencyCallCountryData * CallsEmergencyCallCountryData *
calls_emergency_call_country_data_new (const char *country) calls_emergency_call_country_data_new (const char *country)
{ {
CallsEmergencyCallCountryData *country_data; CallsEmergencyCallCountryData *country_data;
@@ -281,7 +272,7 @@ calls_emergency_call_country_data_new (const char *country)
g_assert (strlen (country) == 2); g_assert (strlen (country) == 2);
country_data = g_new0 (CallsEmergencyCallCountryData, 1); country_data = g_new0 (CallsEmergencyCallCountryData, 1);
country_data->numbers = g_ptr_array_new_with_free_func (calls_emergency_number_free); country_data->numbers = g_ptr_array_new_with_free_func ((GDestroyNotify) calls_emergency_number_free);
strcpy (country_data->country_code, country); strcpy (country_data->country_code, country);
return country_data; return country_data;
@@ -295,7 +286,7 @@ init_hash (void)
GHashTable *table = g_hash_table_new_full (g_str_hash, GHashTable *table = g_hash_table_new_full (g_str_hash,
g_str_equal, g_str_equal,
NULL, NULL,
calls_emergency_call_country_data_free); (GDestroyNotify) calls_emergency_call_country_data_free);
for (int i = 0; i < G_N_ELEMENTS (emergency_number_types); i++) { for (int i = 0; i < G_N_ELEMENTS (emergency_number_types); i++) {
CallsEmergencyCallCountryData *country; CallsEmergencyCallCountryData *country;

View File

@@ -33,11 +33,23 @@ typedef enum {
} CallsEmergencyCallTypeFlags; } CallsEmergencyCallTypeFlags;
typedef struct {
char *number;
CallsEmergencyCallTypeFlags flags;
} CallsEmergencyNumber;
CallsEmergencyNumber *calls_emergency_number_new (const char *number,
CallsEmergencyCallTypeFlags flags);
void calls_emergency_number_free (CallsEmergencyNumber *emergency_number);
typedef struct { typedef struct {
char country_code[3]; /* Two letter country code */ char country_code[3]; /* Two letter country code */
GPtrArray *numbers; /* (element-type: CallsEmergencyNumber) */ GPtrArray *numbers; /* (element-type: CallsEmergencyNumber) */
} CallsEmergencyCallCountryData; } CallsEmergencyCallCountryData;
CallsEmergencyCallCountryData *calls_emergency_call_country_data_new (const char *country);
void calls_emergency_call_country_data_free (CallsEmergencyCallCountryData *country_data);
char *calls_emergency_call_type_get_name (const char *number, const char *country_code); char *calls_emergency_call_type_get_name (const char *number, const char *country_code);
GStrv calls_emergency_call_types_get_numbers_by_country_code (const char *country_code); GStrv calls_emergency_call_types_get_numbers_by_country_code (const char *country_code);