/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */ /* * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * * Copyright (C) 2009 Novell, Inc. * Author: Tambet Ingo (tambet@gmail.com). * * Copyright (C) 2009 - 2012 Red Hat, Inc. * Copyright (C) 2012 Lanedo GmbH. */ #ifndef NM_MOBILE_PROVIDERS_H #define NM_MOBILE_PROVIDERS_H #include #include #include /******************************************************************************/ /* Access method type */ /** * NMAMobileFamily: * @NMA_MOBILE_FAMILY_UNKNOWN: Unknown or invalid network access method * @NMA_MOBILE_FAMILY_3GPP: 3rd Generation Partnership Project (3GPP) network * @NMA_MOBILE_FAMILY_CDMA: A CDMA network */ typedef enum { NMA_MOBILE_FAMILY_UNKNOWN = 0, NMA_MOBILE_FAMILY_3GPP, NMA_MOBILE_FAMILY_CDMA } NMAMobileFamily; #define NMA_TYPE_MOBILE_ACCESS_METHOD (nma_mobile_access_method_get_type ()) typedef struct _NMAMobileAccessMethod NMAMobileAccessMethod; GType nma_mobile_access_method_get_type (void); NMAMobileAccessMethod *nma_mobile_access_method_ref (NMAMobileAccessMethod *method); void nma_mobile_access_method_unref (NMAMobileAccessMethod *method); const gchar *nma_mobile_access_method_get_name (NMAMobileAccessMethod *method); const gchar *nma_mobile_access_method_get_username (NMAMobileAccessMethod *method); const gchar *nma_mobile_access_method_get_password (NMAMobileAccessMethod *method); const gchar *nma_mobile_access_method_get_gateway (NMAMobileAccessMethod *method); const gchar **nma_mobile_access_method_get_dns (NMAMobileAccessMethod *method); const gchar *nma_mobile_access_method_get_3gpp_apn (NMAMobileAccessMethod *method); NMAMobileFamily nma_mobile_access_method_get_family (NMAMobileAccessMethod *method); /******************************************************************************/ /* Mobile provider type */ #define NMA_TYPE_MOBILE_PROVIDER (nma_mobile_provider_get_type ()) typedef struct _NMAMobileProvider NMAMobileProvider; GType nma_mobile_provider_get_type (void); NMAMobileProvider *nma_mobile_provider_ref (NMAMobileProvider *provider); void nma_mobile_provider_unref (NMAMobileProvider *provider); const gchar *nma_mobile_provider_get_name (NMAMobileProvider *provider); GSList *nma_mobile_provider_get_methods (NMAMobileProvider *provider); const gchar **nma_mobile_provider_get_3gpp_mcc_mnc (NMAMobileProvider *provider); const guint32 *nma_mobile_provider_get_cdma_sid (NMAMobileProvider *provider); /******************************************************************************/ /* Country Info type */ #define NMA_TYPE_COUNTRY_INFO (nma_country_info_get_type ()) typedef struct _NMACountryInfo NMACountryInfo; GType nma_country_info_get_type (void); NMACountryInfo *nma_country_info_ref (NMACountryInfo *country_info); void nma_country_info_unref (NMACountryInfo *country_info); const gchar *nma_country_info_get_country_code (NMACountryInfo *country_info); const gchar *nma_country_info_get_country_name (NMACountryInfo *country_info); GSList *nma_country_info_get_providers (NMACountryInfo *country_info); /******************************************************************************/ /* Mobile providers database type */ #define NMA_TYPE_MOBILE_PROVIDERS_DATABASE (nma_mobile_providers_database_get_type ()) #define NMA_MOBILE_PROVIDERS_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NMA_TYPE_MOBILE_PROVIDERS_DATABASE, NMAMobileProvidersDatabase)) #define NMA_MOBILE_PROVIDERS_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NMA_TYPE_MOBILE_PROVIDERS_DATABASE, NMAMobileProvidersDatabaseClass)) #define NMA_IS_MOBILE_PROVIDERS_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NMA_TYPE_MOBILE_PROVIDERS_DATABASE)) #define NMA_IS_MOBILE_PROVIDERS_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NMA_TYPE_MOBILE_PROVIDERS_DATABASE)) #define NMA_MOBILE_PROVIDERS_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NMA_TYPE_MOBILE_PROVIDERS_DATABASE, NMAMobileProvidersDatabaseClass)) typedef struct _NMAMobileProvidersDatabase NMAMobileProvidersDatabase; typedef struct _NMAMobileProvidersDatabaseClass NMAMobileProvidersDatabaseClass; typedef struct _NMAMobileProvidersDatabasePrivate NMAMobileProvidersDatabasePrivate; struct _NMAMobileProvidersDatabase { GObject parent; NMAMobileProvidersDatabasePrivate *priv; }; struct _NMAMobileProvidersDatabaseClass { GObjectClass parent; }; GType nma_mobile_providers_database_get_type (void); void nma_mobile_providers_database_new (const gchar *country_codes, const gchar *service_providers, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data); NMAMobileProvidersDatabase *nma_mobile_providers_database_new_finish (GAsyncResult *res, GError **error); NMAMobileProvidersDatabase *nma_mobile_providers_database_new_sync (const gchar *country_codes, const gchar *service_providers, GCancellable *cancellable, GError **error); GHashTable *nma_mobile_providers_database_get_countries (NMAMobileProvidersDatabase *self); void nma_mobile_providers_database_dump (NMAMobileProvidersDatabase *self); NMACountryInfo *nma_mobile_providers_database_lookup_country (NMAMobileProvidersDatabase *self, const gchar *country_code); NMAMobileProvider *nma_mobile_providers_database_lookup_3gpp_mcc_mnc (NMAMobileProvidersDatabase *self, const gchar *mccmnc); NMAMobileProvider *nma_mobile_providers_database_lookup_cdma_sid (NMAMobileProvidersDatabase *self, guint32 sid); /******************************************************************************/ /* Utils */ gboolean nma_mobile_providers_split_3gpp_mcc_mnc (const gchar *mccmnc, gchar **mcc, gchar **mnc); #endif /* NM_MOBILE_PROVIDERS_H */