/* fsodata.h generated by valac 0.16.1, the Vala compiler, do not modify */


#ifndef __FSODATA_H__
#define __FSODATA_H__

#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>
#include <fsobasics.h>

G_BEGIN_DECLS


#define FSO_DATA_MBPI_TYPE_COUNTRY (fso_data_mbpi_country_get_type ())
#define FSO_DATA_MBPI_COUNTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DATA_MBPI_TYPE_COUNTRY, FsoDataMBPICountry))
#define FSO_DATA_MBPI_COUNTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DATA_MBPI_TYPE_COUNTRY, FsoDataMBPICountryClass))
#define FSO_DATA_MBPI_IS_COUNTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DATA_MBPI_TYPE_COUNTRY))
#define FSO_DATA_MBPI_IS_COUNTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DATA_MBPI_TYPE_COUNTRY))
#define FSO_DATA_MBPI_COUNTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DATA_MBPI_TYPE_COUNTRY, FsoDataMBPICountryClass))

typedef struct _FsoDataMBPICountry FsoDataMBPICountry;
typedef struct _FsoDataMBPICountryClass FsoDataMBPICountryClass;
typedef struct _FsoDataMBPICountryPrivate FsoDataMBPICountryPrivate;

#define FSO_DATA_MBPI_TYPE_PROVIDER (fso_data_mbpi_provider_get_type ())
#define FSO_DATA_MBPI_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DATA_MBPI_TYPE_PROVIDER, FsoDataMBPIProvider))
#define FSO_DATA_MBPI_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DATA_MBPI_TYPE_PROVIDER, FsoDataMBPIProviderClass))
#define FSO_DATA_MBPI_IS_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DATA_MBPI_TYPE_PROVIDER))
#define FSO_DATA_MBPI_IS_PROVIDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DATA_MBPI_TYPE_PROVIDER))
#define FSO_DATA_MBPI_PROVIDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DATA_MBPI_TYPE_PROVIDER, FsoDataMBPIProviderClass))

typedef struct _FsoDataMBPIProvider FsoDataMBPIProvider;
typedef struct _FsoDataMBPIProviderClass FsoDataMBPIProviderClass;
typedef struct _FsoDataMBPIProviderPrivate FsoDataMBPIProviderPrivate;

#define FSO_DATA_MBPI_TYPE_ACCESS_POINT (fso_data_mbpi_access_point_get_type ())
#define FSO_DATA_MBPI_ACCESS_POINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DATA_MBPI_TYPE_ACCESS_POINT, FsoDataMBPIAccessPoint))
#define FSO_DATA_MBPI_ACCESS_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DATA_MBPI_TYPE_ACCESS_POINT, FsoDataMBPIAccessPointClass))
#define FSO_DATA_MBPI_IS_ACCESS_POINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DATA_MBPI_TYPE_ACCESS_POINT))
#define FSO_DATA_MBPI_IS_ACCESS_POINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DATA_MBPI_TYPE_ACCESS_POINT))
#define FSO_DATA_MBPI_ACCESS_POINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DATA_MBPI_TYPE_ACCESS_POINT, FsoDataMBPIAccessPointClass))

typedef struct _FsoDataMBPIAccessPoint FsoDataMBPIAccessPoint;
typedef struct _FsoDataMBPIAccessPointClass FsoDataMBPIAccessPointClass;
typedef struct _FsoDataMBPIAccessPointPrivate FsoDataMBPIAccessPointPrivate;

#define FSO_DATA_MBPI_TYPE_DATABASE (fso_data_mbpi_database_get_type ())
#define FSO_DATA_MBPI_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_DATA_MBPI_TYPE_DATABASE, FsoDataMBPIDatabase))
#define FSO_DATA_MBPI_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_DATA_MBPI_TYPE_DATABASE, FsoDataMBPIDatabaseClass))
#define FSO_DATA_MBPI_IS_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_DATA_MBPI_TYPE_DATABASE))
#define FSO_DATA_MBPI_IS_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_DATA_MBPI_TYPE_DATABASE))
#define FSO_DATA_MBPI_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_DATA_MBPI_TYPE_DATABASE, FsoDataMBPIDatabaseClass))

typedef struct _FsoDataMBPIDatabase FsoDataMBPIDatabase;
typedef struct _FsoDataMBPIDatabaseClass FsoDataMBPIDatabaseClass;
typedef struct _FsoDataMBPIDatabasePrivate FsoDataMBPIDatabasePrivate;

struct _FsoDataMBPICountry {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FsoDataMBPICountryPrivate * priv;
	gchar* code;
	gchar* name;
	gchar* dialprefix;
	GeeHashMap* providers;
	GeeHashMap* timezones;
};

struct _FsoDataMBPICountryClass {
	GTypeClass parent_class;
	void (*finalize) (FsoDataMBPICountry *self);
};

struct _FsoDataMBPIProvider {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FsoDataMBPIProviderPrivate * priv;
	gchar* name;
	GeeArrayList* codes;
	GeeHashMap* gsm;
	GeeHashMap* cdma;
};

struct _FsoDataMBPIProviderClass {
	GTypeClass parent_class;
	void (*finalize) (FsoDataMBPIProvider *self);
};

struct _FsoDataMBPIAccessPoint {
	GTypeInstance parent_instance;
	volatile int ref_count;
	FsoDataMBPIAccessPointPrivate * priv;
	gchar* description;
	gchar* name;
	gchar* user;
	gchar* password;
	GeeArrayList* dns;
};

struct _FsoDataMBPIAccessPointClass {
	GTypeClass parent_class;
	void (*finalize) (FsoDataMBPIAccessPoint *self);
};

struct _FsoDataMBPIDatabase {
	FsoFrameworkAbstractObject parent_instance;
	FsoDataMBPIDatabasePrivate * priv;
	GeeHashMap* countries;
};

struct _FsoDataMBPIDatabaseClass {
	FsoFrameworkAbstractObjectClass parent_class;
};


gpointer fso_data_mbpi_country_ref (gpointer instance);
void fso_data_mbpi_country_unref (gpointer instance);
GParamSpec* fso_data_mbpi_param_spec_country (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_data_mbpi_value_set_country (GValue* value, gpointer v_object);
void fso_data_mbpi_value_take_country (GValue* value, gpointer v_object);
gpointer fso_data_mbpi_value_get_country (const GValue* value);
GType fso_data_mbpi_country_get_type (void) G_GNUC_CONST;
gpointer fso_data_mbpi_provider_ref (gpointer instance);
void fso_data_mbpi_provider_unref (gpointer instance);
GParamSpec* fso_data_mbpi_param_spec_provider (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_data_mbpi_value_set_provider (GValue* value, gpointer v_object);
void fso_data_mbpi_value_take_provider (GValue* value, gpointer v_object);
gpointer fso_data_mbpi_value_get_provider (const GValue* value);
GType fso_data_mbpi_provider_get_type (void) G_GNUC_CONST;
FsoDataMBPICountry* fso_data_mbpi_country_new (void);
FsoDataMBPICountry* fso_data_mbpi_country_construct (GType object_type);
gpointer fso_data_mbpi_access_point_ref (gpointer instance);
void fso_data_mbpi_access_point_unref (gpointer instance);
GParamSpec* fso_data_mbpi_param_spec_access_point (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_data_mbpi_value_set_access_point (GValue* value, gpointer v_object);
void fso_data_mbpi_value_take_access_point (GValue* value, gpointer v_object);
gpointer fso_data_mbpi_value_get_access_point (const GValue* value);
GType fso_data_mbpi_access_point_get_type (void) G_GNUC_CONST;
FsoDataMBPIProvider* fso_data_mbpi_provider_new (void);
FsoDataMBPIProvider* fso_data_mbpi_provider_construct (GType object_type);
FsoDataMBPIAccessPoint* fso_data_mbpi_access_point_new (void);
FsoDataMBPIAccessPoint* fso_data_mbpi_access_point_construct (GType object_type);
GType fso_data_mbpi_database_get_type (void) G_GNUC_CONST;
FsoDataMBPIDatabase* fso_data_mbpi_database_instance (void);
GeeMap* fso_data_mbpi_database_allCountries (FsoDataMBPIDatabase* self);
GeeMap* fso_data_mbpi_database_providersForCountry (FsoDataMBPIDatabase* self, const gchar* code);
FsoDataMBPICountry* fso_data_mbpi_database_countryForMccMnc (FsoDataMBPIDatabase* self, const gchar* mccmnc);
GeeMap* fso_data_mbpi_database_accessPointsForMccMnc (FsoDataMBPIDatabase* self, const gchar* mccmnc);


G_END_DECLS

#endif
