/* mediators.c generated by valac 0.14.2, the Vala compiler
 * generated from mediators.vala, do not modify */

/*
 * Copyright (C) 2010  Antonio Ospite <ospite@studenti.unina.it>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.

 * This program 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 General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 */
/**
 * Debug mediators
 **/
/**
 * SIM Mediators
 **/
/**
 * SMS Mediators
 **/
/**
 * Call Mediators
 **/
/**
 * PDP Mediators
 **/

#include <glib.h>
#include <glib-object.h>
#include <fsogsm.h>
#include <gio/gio.h>
#include <freesmartphone.h>
#include <stdlib.h>
#include <string.h>
#include <gee.h>


#define FREESCALE_NEPTUNE_TYPE_NEPTUNE_DEVICE_GET_INFORMATION (freescale_neptune_neptune_device_get_information_get_type ())
#define FREESCALE_NEPTUNE_NEPTUNE_DEVICE_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_DEVICE_GET_INFORMATION, FreescaleNeptuneNeptuneDeviceGetInformation))
#define FREESCALE_NEPTUNE_NEPTUNE_DEVICE_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_DEVICE_GET_INFORMATION, FreescaleNeptuneNeptuneDeviceGetInformationClass))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_DEVICE_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_DEVICE_GET_INFORMATION))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_DEVICE_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_DEVICE_GET_INFORMATION))
#define FREESCALE_NEPTUNE_NEPTUNE_DEVICE_GET_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_DEVICE_GET_INFORMATION, FreescaleNeptuneNeptuneDeviceGetInformationClass))

typedef struct _FreescaleNeptuneNeptuneDeviceGetInformation FreescaleNeptuneNeptuneDeviceGetInformation;
typedef struct _FreescaleNeptuneNeptuneDeviceGetInformationClass FreescaleNeptuneNeptuneDeviceGetInformationClass;
typedef struct _FreescaleNeptuneNeptuneDeviceGetInformationPrivate FreescaleNeptuneNeptuneDeviceGetInformationPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define FREESCALE_NEPTUNE_TYPE_MODEM (freescale_neptune_modem_get_type ())
#define FREESCALE_NEPTUNE_MODEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FREESCALE_NEPTUNE_TYPE_MODEM, FreescaleNeptuneModem))
#define FREESCALE_NEPTUNE_MODEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FREESCALE_NEPTUNE_TYPE_MODEM, FreescaleNeptuneModemClass))
#define FREESCALE_NEPTUNE_IS_MODEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FREESCALE_NEPTUNE_TYPE_MODEM))
#define FREESCALE_NEPTUNE_IS_MODEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FREESCALE_NEPTUNE_TYPE_MODEM))
#define FREESCALE_NEPTUNE_MODEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FREESCALE_NEPTUNE_TYPE_MODEM, FreescaleNeptuneModemClass))

typedef struct _FreescaleNeptuneModem FreescaleNeptuneModem;
typedef struct _FreescaleNeptuneModemClass FreescaleNeptuneModemClass;
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _FreescaleNeptuneNeptuneDeviceGetInformationRunData FreescaleNeptuneNeptuneDeviceGetInformationRunData;

#define FREESCALE_NEPTUNE_TYPE_NEPTUNE_SIM_SEND_AUTH_CODE (freescale_neptune_neptune_sim_send_auth_code_get_type ())
#define FREESCALE_NEPTUNE_NEPTUNE_SIM_SEND_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_SIM_SEND_AUTH_CODE, FreescaleNeptuneNeptuneSimSendAuthCode))
#define FREESCALE_NEPTUNE_NEPTUNE_SIM_SEND_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_SIM_SEND_AUTH_CODE, FreescaleNeptuneNeptuneSimSendAuthCodeClass))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_SIM_SEND_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_SIM_SEND_AUTH_CODE))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_SIM_SEND_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_SIM_SEND_AUTH_CODE))
#define FREESCALE_NEPTUNE_NEPTUNE_SIM_SEND_AUTH_CODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_SIM_SEND_AUTH_CODE, FreescaleNeptuneNeptuneSimSendAuthCodeClass))

typedef struct _FreescaleNeptuneNeptuneSimSendAuthCode FreescaleNeptuneNeptuneSimSendAuthCode;
typedef struct _FreescaleNeptuneNeptuneSimSendAuthCodeClass FreescaleNeptuneNeptuneSimSendAuthCodeClass;
typedef struct _FreescaleNeptuneNeptuneSimSendAuthCodePrivate FreescaleNeptuneNeptuneSimSendAuthCodePrivate;

#define FREESCALE_NEPTUNE_TYPE_NEPTUNE_PLUS_CPIN (freescale_neptune_neptune_plus_cpin_get_type ())
#define FREESCALE_NEPTUNE_NEPTUNE_PLUS_CPIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_PLUS_CPIN, FreescaleNeptuneNeptunePlusCPIN))
#define FREESCALE_NEPTUNE_NEPTUNE_PLUS_CPIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_PLUS_CPIN, FreescaleNeptuneNeptunePlusCPINClass))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_PLUS_CPIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_PLUS_CPIN))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_PLUS_CPIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_PLUS_CPIN))
#define FREESCALE_NEPTUNE_NEPTUNE_PLUS_CPIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_PLUS_CPIN, FreescaleNeptuneNeptunePlusCPINClass))

typedef struct _FreescaleNeptuneNeptunePlusCPIN FreescaleNeptuneNeptunePlusCPIN;
typedef struct _FreescaleNeptuneNeptunePlusCPINClass FreescaleNeptuneNeptunePlusCPINClass;
typedef struct _FreescaleNeptuneNeptuneSimSendAuthCodeRunData FreescaleNeptuneNeptuneSimSendAuthCodeRunData;

#define FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_REGISTER (freescale_neptune_neptune_network_register_get_type ())
#define FREESCALE_NEPTUNE_NEPTUNE_NETWORK_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_REGISTER, FreescaleNeptuneNeptuneNetworkRegister))
#define FREESCALE_NEPTUNE_NEPTUNE_NETWORK_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_REGISTER, FreescaleNeptuneNeptuneNetworkRegisterClass))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_NETWORK_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_REGISTER))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_NETWORK_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_REGISTER))
#define FREESCALE_NEPTUNE_NEPTUNE_NETWORK_REGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_REGISTER, FreescaleNeptuneNeptuneNetworkRegisterClass))

typedef struct _FreescaleNeptuneNeptuneNetworkRegister FreescaleNeptuneNeptuneNetworkRegister;
typedef struct _FreescaleNeptuneNeptuneNetworkRegisterClass FreescaleNeptuneNeptuneNetworkRegisterClass;
typedef struct _FreescaleNeptuneNeptuneNetworkRegisterPrivate FreescaleNeptuneNeptuneNetworkRegisterPrivate;
typedef struct _FreescaleNeptuneNeptuneNetworkRegisterRunData FreescaleNeptuneNeptuneNetworkRegisterRunData;

#define FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_UNREGISTER (freescale_neptune_neptune_network_unregister_get_type ())
#define FREESCALE_NEPTUNE_NEPTUNE_NETWORK_UNREGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_UNREGISTER, FreescaleNeptuneNeptuneNetworkUnregister))
#define FREESCALE_NEPTUNE_NEPTUNE_NETWORK_UNREGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_UNREGISTER, FreescaleNeptuneNeptuneNetworkUnregisterClass))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_NETWORK_UNREGISTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_UNREGISTER))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_NETWORK_UNREGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_UNREGISTER))
#define FREESCALE_NEPTUNE_NEPTUNE_NETWORK_UNREGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_UNREGISTER, FreescaleNeptuneNeptuneNetworkUnregisterClass))

typedef struct _FreescaleNeptuneNeptuneNetworkUnregister FreescaleNeptuneNeptuneNetworkUnregister;
typedef struct _FreescaleNeptuneNeptuneNetworkUnregisterClass FreescaleNeptuneNeptuneNetworkUnregisterClass;
typedef struct _FreescaleNeptuneNeptuneNetworkUnregisterPrivate FreescaleNeptuneNeptuneNetworkUnregisterPrivate;
typedef struct _FreescaleNeptuneNeptuneNetworkUnregisterRunData FreescaleNeptuneNeptuneNetworkUnregisterRunData;

#define FREESCALE_NEPTUNE_TYPE_NEPTUNE_CALL_LIST_CALLS (freescale_neptune_neptune_call_list_calls_get_type ())
#define FREESCALE_NEPTUNE_NEPTUNE_CALL_LIST_CALLS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_CALL_LIST_CALLS, FreescaleNeptuneNeptuneCallListCalls))
#define FREESCALE_NEPTUNE_NEPTUNE_CALL_LIST_CALLS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_CALL_LIST_CALLS, FreescaleNeptuneNeptuneCallListCallsClass))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_CALL_LIST_CALLS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_CALL_LIST_CALLS))
#define FREESCALE_NEPTUNE_IS_NEPTUNE_CALL_LIST_CALLS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FREESCALE_NEPTUNE_TYPE_NEPTUNE_CALL_LIST_CALLS))
#define FREESCALE_NEPTUNE_NEPTUNE_CALL_LIST_CALLS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FREESCALE_NEPTUNE_TYPE_NEPTUNE_CALL_LIST_CALLS, FreescaleNeptuneNeptuneCallListCallsClass))

typedef struct _FreescaleNeptuneNeptuneCallListCalls FreescaleNeptuneNeptuneCallListCalls;
typedef struct _FreescaleNeptuneNeptuneCallListCallsClass FreescaleNeptuneNeptuneCallListCallsClass;
typedef struct _FreescaleNeptuneNeptuneCallListCallsPrivate FreescaleNeptuneNeptuneCallListCallsPrivate;
typedef struct _FreescaleNeptuneNeptuneCallListCallsRunData FreescaleNeptuneNeptuneCallListCallsRunData;

struct _FreescaleNeptuneNeptuneDeviceGetInformation {
	FsoGsmDeviceGetInformation parent_instance;
	FreescaleNeptuneNeptuneDeviceGetInformationPrivate * priv;
};

struct _FreescaleNeptuneNeptuneDeviceGetInformationClass {
	FsoGsmDeviceGetInformationClass parent_class;
};

struct _FreescaleNeptuneNeptuneDeviceGetInformationRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FreescaleNeptuneNeptuneDeviceGetInformation* self;
	FsoGsmModem* _tmp0_;
	FreescaleNeptuneModem* _tmp1_;
	FreescaleNeptuneModem* modem;
	GHashFunc _tmp2_;
	GEqualFunc _tmp3_;
	GHashTable* _tmp4_;
	GHashTable* _tmp5_;
	GHashTable* _tmp6_;
	GHashTable* _tmp7_;
	gchar* _tmp8_;
	GVariant* _tmp9_;
	GHashTable* _tmp10_;
	GHashTable* _tmp11_;
	gchar* _tmp12_;
	GVariant* _tmp13_;
	GHashTable* _tmp14_;
	GHashTable* _tmp15_;
	gchar* _tmp16_;
	const gchar* _tmp17_;
	const gchar* _tmp18_;
	GVariant* _tmp19_;
	FsoGsmModem* _tmp20_;
	gpointer _tmp21_;
	FsoGsmPlusCGSN* cgsn;
	FsoGsmModem* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	gint _tmp25_;
	gchar** _tmp26_;
	gchar** _tmp27_;
	gint _tmp27__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GHashTable* _tmp28_;
	GHashTable* _tmp29_;
	gchar* _tmp30_;
	gconstpointer _tmp31_;
	GVariant* _tmp32_;
	GError * _inner_error_;
};

struct _FreescaleNeptuneNeptuneSimSendAuthCode {
	FsoGsmSimSendAuthCode parent_instance;
	FreescaleNeptuneNeptuneSimSendAuthCodePrivate * priv;
};

struct _FreescaleNeptuneNeptuneSimSendAuthCodeClass {
	FsoGsmSimSendAuthCodeClass parent_class;
};

struct _FreescaleNeptuneNeptuneSimSendAuthCodeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FreescaleNeptuneNeptuneSimSendAuthCode* self;
	gchar* pin;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FreescaleNeptuneNeptunePlusCPIN* cmd;
	FsoGsmModem* _tmp2_;
	FreescaleNeptuneNeptunePlusCPIN* _tmp3_;
	FreescaleNeptuneNeptunePlusCPIN* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gint _tmp8_;
	gchar** _tmp9_;
	gchar** _tmp10_;
	gint _tmp10__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FreescaleNeptuneNeptunePlusCPIN* _tmp11_;
	gchar** _tmp12_;
	gint _tmp12__length1;
	FsoGsmConstantsAtResponse* _tmp13_;
	FsoGsmConstantsAtResponse* _tmp14_;
	gint _tmp14__length1;
	FsoGsmConstantsAtResponse _tmp15_;
	FsoGsmConstantsAtResponse _tmp16_;
	FsoGsmConstantsAtResponse code;
	FsoGsmConstantsAtResponse _tmp17_;
	const gchar* _tmp18_;
	const gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	GError* _tmp22_;
	GError* _tmp23_;
	GError * _inner_error_;
};

struct _FreescaleNeptuneNeptuneNetworkRegister {
	FsoGsmNetworkRegister parent_instance;
	FreescaleNeptuneNeptuneNetworkRegisterPrivate * priv;
};

struct _FreescaleNeptuneNeptuneNetworkRegisterClass {
	FsoGsmNetworkRegisterClass parent_class;
};

struct _FreescaleNeptuneNeptuneNetworkRegisterRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FreescaleNeptuneNeptuneNetworkRegister* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCOPS* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};

struct _FreescaleNeptuneNeptuneNetworkUnregister {
	FsoGsmNetworkUnregister parent_instance;
	FreescaleNeptuneNeptuneNetworkUnregisterPrivate * priv;
};

struct _FreescaleNeptuneNeptuneNetworkUnregisterClass {
	FsoGsmNetworkUnregisterClass parent_class;
};

struct _FreescaleNeptuneNeptuneNetworkUnregisterRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FreescaleNeptuneNeptuneNetworkUnregister* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCOPS* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};

struct _FreescaleNeptuneNeptuneCallListCalls {
	FsoGsmCallListCalls parent_instance;
	FreescaleNeptuneNeptuneCallListCallsPrivate * priv;
};

struct _FreescaleNeptuneNeptuneCallListCallsClass {
	FsoGsmCallListCallsClass parent_class;
};

struct _FreescaleNeptuneNeptuneCallListCallsRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FreescaleNeptuneNeptuneCallListCalls* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCLCC* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FreeSmartphoneGSMCallDetail* _tmp8_;
	gint _tmp8__length1;
	GError * _inner_error_;
};


static gpointer freescale_neptune_neptune_device_get_information_parent_class = NULL;
static GType freescale_neptune_neptune_device_get_information_type_id = 0;
static gpointer freescale_neptune_neptune_sim_send_auth_code_parent_class = NULL;
static GType freescale_neptune_neptune_sim_send_auth_code_type_id = 0;
static gpointer freescale_neptune_neptune_network_register_parent_class = NULL;
static GType freescale_neptune_neptune_network_register_type_id = 0;
static gpointer freescale_neptune_neptune_network_unregister_parent_class = NULL;
static GType freescale_neptune_neptune_network_unregister_type_id = 0;
static gpointer freescale_neptune_neptune_call_list_calls_parent_class = NULL;
static GType freescale_neptune_neptune_call_list_calls_type_id = 0;

GType freescale_neptune_neptune_device_get_information_get_type (void) G_GNUC_CONST;
GType freescale_neptune_neptune_device_get_information_register_type (GTypeModule * module);
enum  {
	FREESCALE_NEPTUNE_NEPTUNE_DEVICE_GET_INFORMATION_DUMMY_PROPERTY
};
static void freescale_neptune_neptune_device_get_information_real_run_data_free (gpointer _data);
static void freescale_neptune_neptune_device_get_information_real_run (FsoGsmDeviceGetInformation* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean freescale_neptune_neptune_device_get_information_real_run_co (FreescaleNeptuneNeptuneDeviceGetInformationRunData* _data_);
GType freescale_neptune_modem_get_type (void) G_GNUC_CONST;
GType freescale_neptune_modem_register_type (GTypeModule * module);
static void _g_free0_ (gpointer var);
static void _g_variant_unref0_ (gpointer var);
static GVariant* _variant_new1 (const gchar* value);
static GVariant* _variant_new2 (const gchar* value);
const gchar* freescale_neptune_modem_get_revision (FreescaleNeptuneModem* self);
static GVariant* _variant_new3 (const gchar* value);
static void freescale_neptune_neptune_device_get_information_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static GVariant* _variant_new4 (const gchar* value);
FreescaleNeptuneNeptuneDeviceGetInformation* freescale_neptune_neptune_device_get_information_new (void);
FreescaleNeptuneNeptuneDeviceGetInformation* freescale_neptune_neptune_device_get_information_construct (GType object_type);
GType freescale_neptune_neptune_sim_send_auth_code_get_type (void) G_GNUC_CONST;
GType freescale_neptune_neptune_sim_send_auth_code_register_type (GTypeModule * module);
enum  {
	FREESCALE_NEPTUNE_NEPTUNE_SIM_SEND_AUTH_CODE_DUMMY_PROPERTY
};
static void freescale_neptune_neptune_sim_send_auth_code_real_run_data_free (gpointer _data);
static void freescale_neptune_neptune_sim_send_auth_code_real_run (FsoGsmSimSendAuthCode* base, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean freescale_neptune_neptune_sim_send_auth_code_real_run_co (FreescaleNeptuneNeptuneSimSendAuthCodeRunData* _data_);
GType freescale_neptune_neptune_plus_cpin_get_type (void) G_GNUC_CONST;
GType freescale_neptune_neptune_plus_cpin_register_type (GTypeModule * module);
gchar* freescale_neptune_neptune_plus_cpin_issue (FreescaleNeptuneNeptunePlusCPIN* self, gint pin_type, const gchar* pin);
static void freescale_neptune_neptune_sim_send_auth_code_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FreescaleNeptuneNeptuneSimSendAuthCode* freescale_neptune_neptune_sim_send_auth_code_new (void);
FreescaleNeptuneNeptuneSimSendAuthCode* freescale_neptune_neptune_sim_send_auth_code_construct (GType object_type);
GType freescale_neptune_neptune_network_register_get_type (void) G_GNUC_CONST;
GType freescale_neptune_neptune_network_register_register_type (GTypeModule * module);
enum  {
	FREESCALE_NEPTUNE_NEPTUNE_NETWORK_REGISTER_DUMMY_PROPERTY
};
static void freescale_neptune_neptune_network_register_real_run_data_free (gpointer _data);
static void freescale_neptune_neptune_network_register_real_run (FsoGsmNetworkRegister* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean freescale_neptune_neptune_network_register_real_run_co (FreescaleNeptuneNeptuneNetworkRegisterRunData* _data_);
static void freescale_neptune_neptune_network_register_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FreescaleNeptuneNeptuneNetworkRegister* freescale_neptune_neptune_network_register_new (void);
FreescaleNeptuneNeptuneNetworkRegister* freescale_neptune_neptune_network_register_construct (GType object_type);
GType freescale_neptune_neptune_network_unregister_get_type (void) G_GNUC_CONST;
GType freescale_neptune_neptune_network_unregister_register_type (GTypeModule * module);
enum  {
	FREESCALE_NEPTUNE_NEPTUNE_NETWORK_UNREGISTER_DUMMY_PROPERTY
};
static void freescale_neptune_neptune_network_unregister_real_run_data_free (gpointer _data);
static void freescale_neptune_neptune_network_unregister_real_run (FsoGsmNetworkUnregister* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean freescale_neptune_neptune_network_unregister_real_run_co (FreescaleNeptuneNeptuneNetworkUnregisterRunData* _data_);
static void freescale_neptune_neptune_network_unregister_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FreescaleNeptuneNeptuneNetworkUnregister* freescale_neptune_neptune_network_unregister_new (void);
FreescaleNeptuneNeptuneNetworkUnregister* freescale_neptune_neptune_network_unregister_construct (GType object_type);
GType freescale_neptune_neptune_call_list_calls_get_type (void) G_GNUC_CONST;
GType freescale_neptune_neptune_call_list_calls_register_type (GTypeModule * module);
enum  {
	FREESCALE_NEPTUNE_NEPTUNE_CALL_LIST_CALLS_DUMMY_PROPERTY
};
static void freescale_neptune_neptune_call_list_calls_real_run_data_free (gpointer _data);
static void freescale_neptune_neptune_call_list_calls_real_run (FsoGsmCallListCalls* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean freescale_neptune_neptune_call_list_calls_real_run_co (FreescaleNeptuneNeptuneCallListCallsRunData* _data_);
static void freescale_neptune_neptune_call_list_calls_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FreescaleNeptuneNeptuneCallListCalls* freescale_neptune_neptune_call_list_calls_new (void);
FreescaleNeptuneNeptuneCallListCalls* freescale_neptune_neptune_call_list_calls_construct (GType object_type);
void freescale_neptune_registerNeptuneMediators (GeeHashMap* table);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


static void freescale_neptune_neptune_device_get_information_real_run_data_free (gpointer _data) {
	FreescaleNeptuneNeptuneDeviceGetInformationRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FreescaleNeptuneNeptuneDeviceGetInformationRunData, _data_);
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


static void freescale_neptune_neptune_device_get_information_real_run (FsoGsmDeviceGetInformation* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneDeviceGetInformation * self;
	FreescaleNeptuneNeptuneDeviceGetInformationRunData* _data_;
	FreescaleNeptuneNeptuneDeviceGetInformation* _tmp0_;
	self = (FreescaleNeptuneNeptuneDeviceGetInformation*) base;
	_data_ = g_slice_new0 (FreescaleNeptuneNeptuneDeviceGetInformationRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, freescale_neptune_neptune_device_get_information_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, freescale_neptune_neptune_device_get_information_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	freescale_neptune_neptune_device_get_information_real_run_co (_data_);
}


static void freescale_neptune_neptune_device_get_information_real_run_finish (FsoGsmDeviceGetInformation* base, GAsyncResult* _res_, GError** error) {
	FreescaleNeptuneNeptuneDeviceGetInformationRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void _g_free0_ (gpointer var) {
	var = (g_free (var), NULL);
}


static void _g_variant_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (g_variant_unref (var), NULL));
}


static GVariant* _variant_new1 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new2 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new3 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static void freescale_neptune_neptune_device_get_information_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneDeviceGetInformationRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	freescale_neptune_neptune_device_get_information_real_run_co (_data_);
}


static GVariant* _variant_new4 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static gboolean freescale_neptune_neptune_device_get_information_real_run_co (FreescaleNeptuneNeptuneDeviceGetInformationRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = _g_object_ref0 (FREESCALE_NEPTUNE_IS_MODEM (_data_->_tmp0_) ? ((FreescaleNeptuneModem*) _data_->_tmp0_) : NULL);
	_data_->modem = _data_->_tmp1_;
	_data_->_tmp2_ = g_str_hash;
	_data_->_tmp3_ = g_str_equal;
	_data_->_tmp4_ = g_hash_table_new_full (_data_->_tmp2_, _data_->_tmp3_, _g_free0_, _g_variant_unref0_);
	_data_->_tmp5_ = _data_->_tmp4_;
	fso_gsm_device_get_information_set_info ((FsoGsmDeviceGetInformation*) _data_->self, _data_->_tmp5_);
	_g_hash_table_unref0 (_data_->_tmp5_);
	_data_->_tmp6_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp8_ = g_strdup ("manufacturer");
	_data_->_tmp9_ = _variant_new1 ("Motorola");
	g_hash_table_insert (_data_->_tmp7_, _data_->_tmp8_, _data_->_tmp9_);
	_data_->_tmp10_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
	_data_->_tmp11_ = _data_->_tmp10_;
	_data_->_tmp12_ = g_strdup ("model");
	_data_->_tmp13_ = _variant_new2 ("Neptune Freescale Modem");
	g_hash_table_insert (_data_->_tmp11_, _data_->_tmp12_, _data_->_tmp13_);
	_data_->_tmp14_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
	_data_->_tmp15_ = _data_->_tmp14_;
	_data_->_tmp16_ = g_strdup ("revision");
	_data_->_tmp17_ = freescale_neptune_modem_get_revision (_data_->modem);
	_data_->_tmp18_ = _data_->_tmp17_;
	_data_->_tmp19_ = _variant_new3 (_data_->_tmp18_);
	g_hash_table_insert (_data_->_tmp15_, _data_->_tmp16_, _data_->_tmp19_);
	_data_->_tmp20_ = fso_gsm_theModem;
	_data_->_tmp21_ = NULL;
	_data_->_tmp21_ = fso_gsm_modem_createAtCommand (_data_->_tmp20_, FSO_GSM_TYPE_PLUS_CGSN, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CGSN");
	_data_->cgsn = (FsoGsmPlusCGSN*) _data_->_tmp21_;
	_data_->_tmp22_ = fso_gsm_theModem;
	_data_->_tmp23_ = NULL;
	_data_->_tmp23_ = fso_gsm_simple_at_command_query ((FsoGsmSimpleAtCommand*) _data_->cgsn);
	_data_->_tmp24_ = _data_->_tmp23_;
	_data_->_tmp25_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp22_, (FsoGsmAtCommand*) _data_->cgsn, _data_->_tmp24_, FSO_GSM_MODEM_DEFAULT_RETRIES, freescale_neptune_neptune_device_get_information_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp26_ = NULL;
	_data_->_tmp26_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp22_, _data_->_res_, &_data_->_tmp25_);
	_data_->_tmp27_ = _data_->_tmp26_;
	_data_->_tmp27__length1 = _data_->_tmp25_;
	_g_free0 (_data_->_tmp24_);
	_data_->response = _data_->_tmp27_;
	_data_->response_length1 = _data_->_tmp27__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cgsn, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cgsn);
			_g_object_unref0 (_data_->modem);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cgsn);
			_g_object_unref0 (_data_->modem);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp28_ = fso_gsm_device_get_information_get_info ((FsoGsmDeviceGetInformation*) _data_->self);
	_data_->_tmp29_ = _data_->_tmp28_;
	_data_->_tmp30_ = g_strdup ("imei");
	_data_->_tmp31_ = ((FsoGsmSimpleAtCommand*) _data_->cgsn)->value;
	_data_->_tmp32_ = _variant_new4 ((const gchar*) _data_->_tmp31_);
	g_hash_table_insert (_data_->_tmp29_, _data_->_tmp30_, _data_->_tmp32_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cgsn);
	_g_object_unref0 (_data_->modem);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FreescaleNeptuneNeptuneDeviceGetInformation* freescale_neptune_neptune_device_get_information_construct (GType object_type) {
	FreescaleNeptuneNeptuneDeviceGetInformation * self = NULL;
	self = (FreescaleNeptuneNeptuneDeviceGetInformation*) fso_gsm_device_get_information_construct (object_type);
	return self;
}


FreescaleNeptuneNeptuneDeviceGetInformation* freescale_neptune_neptune_device_get_information_new (void) {
	return freescale_neptune_neptune_device_get_information_construct (FREESCALE_NEPTUNE_TYPE_NEPTUNE_DEVICE_GET_INFORMATION);
}


static void freescale_neptune_neptune_device_get_information_class_init (FreescaleNeptuneNeptuneDeviceGetInformationClass * klass) {
	freescale_neptune_neptune_device_get_information_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_DEVICE_GET_INFORMATION_CLASS (klass)->run = freescale_neptune_neptune_device_get_information_real_run;
	FSO_GSM_DEVICE_GET_INFORMATION_CLASS (klass)->run_finish = freescale_neptune_neptune_device_get_information_real_run_finish;
}


static void freescale_neptune_neptune_device_get_information_instance_init (FreescaleNeptuneNeptuneDeviceGetInformation * self) {
}


/**
 * Modem not implementing any of +CGMR;+CGMM;+CGMI -- only +CGSN is supported
 **/
GType freescale_neptune_neptune_device_get_information_get_type (void) {
	return freescale_neptune_neptune_device_get_information_type_id;
}


GType freescale_neptune_neptune_device_get_information_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (FreescaleNeptuneNeptuneDeviceGetInformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) freescale_neptune_neptune_device_get_information_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FreescaleNeptuneNeptuneDeviceGetInformation), 0, (GInstanceInitFunc) freescale_neptune_neptune_device_get_information_instance_init, NULL };
	freescale_neptune_neptune_device_get_information_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_DEVICE_GET_INFORMATION, "FreescaleNeptuneNeptuneDeviceGetInformation", &g_define_type_info, 0);
	return freescale_neptune_neptune_device_get_information_type_id;
}


static void freescale_neptune_neptune_sim_send_auth_code_real_run_data_free (gpointer _data) {
	FreescaleNeptuneNeptuneSimSendAuthCodeRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->pin);
	_g_object_unref0 (_data_->self);
	g_slice_free (FreescaleNeptuneNeptuneSimSendAuthCodeRunData, _data_);
}


static void freescale_neptune_neptune_sim_send_auth_code_real_run (FsoGsmSimSendAuthCode* base, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneSimSendAuthCode * self;
	FreescaleNeptuneNeptuneSimSendAuthCodeRunData* _data_;
	FreescaleNeptuneNeptuneSimSendAuthCode* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	self = (FreescaleNeptuneNeptuneSimSendAuthCode*) base;
	_data_ = g_slice_new0 (FreescaleNeptuneNeptuneSimSendAuthCodeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, freescale_neptune_neptune_sim_send_auth_code_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, freescale_neptune_neptune_sim_send_auth_code_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = pin;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->pin = _tmp2_;
	freescale_neptune_neptune_sim_send_auth_code_real_run_co (_data_);
}


static void freescale_neptune_neptune_sim_send_auth_code_real_run_finish (FsoGsmSimSendAuthCode* base, GAsyncResult* _res_, GError** error) {
	FreescaleNeptuneNeptuneSimSendAuthCodeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void freescale_neptune_neptune_sim_send_auth_code_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneSimSendAuthCodeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	freescale_neptune_neptune_sim_send_auth_code_real_run_co (_data_);
}


static const gchar* string_to_string (const gchar* self) {
	const gchar* result = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	result = self;
	return result;
}


static gboolean freescale_neptune_neptune_sim_send_auth_code_real_run_co (FreescaleNeptuneNeptuneSimSendAuthCodeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FREESCALE_NEPTUNE_TYPE_NEPTUNE_PLUS_CPIN, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPIN");
	_data_->cmd = (FreescaleNeptuneNeptunePlusCPIN*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->cmd;
	_data_->_tmp4_ = _data_->cmd;
	_data_->_tmp5_ = _data_->pin;
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = freescale_neptune_neptune_plus_cpin_issue (_data_->_tmp4_, 1, _data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp8_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->_tmp3_, _data_->_tmp7_, FSO_GSM_MODEM_DEFAULT_RETRIES, freescale_neptune_neptune_sim_send_auth_code_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp9_ = NULL;
	_data_->_tmp9_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp8_);
	_data_->_tmp10_ = _data_->_tmp9_;
	_data_->_tmp10__length1 = _data_->_tmp8_;
	_g_free0 (_data_->_tmp7_);
	_data_->response = _data_->_tmp10_;
	_data_->response_length1 = _data_->_tmp10__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp11_ = _data_->cmd;
	_data_->_tmp12_ = _data_->response;
	_data_->_tmp12__length1 = _data_->response_length1;
	_data_->_tmp13_ = NULL;
	_data_->_tmp13_ = g_new0 (FsoGsmConstantsAtResponse, 2);
	_data_->_tmp13_[0] = FSO_GSM_CONSTANTS_AT_RESPONSE_OK;
	_data_->_tmp13_[1] = FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_016_INCORRECT_PASSWORD;
	_data_->_tmp14_ = _data_->_tmp13_;
	_data_->_tmp14__length1 = 2;
	_data_->_tmp15_ = 0;
	_data_->_tmp15_ = fso_gsm_checkResponseExpected ((FsoGsmAtCommand*) _data_->_tmp11_, _data_->_tmp12_, _data_->_tmp12__length1, _data_->_tmp14_, 2, &_data_->_inner_error_);
	_data_->_tmp16_ = _data_->_tmp15_;
	_data_->_tmp14_ = (g_free (_data_->_tmp14_), NULL);
	_data_->code = _data_->_tmp16_;
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp17_ = _data_->code;
	if (_data_->_tmp17_ == FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_016_INCORRECT_PASSWORD) {
		_data_->_tmp18_ = _data_->pin;
		_data_->_tmp19_ = NULL;
		_data_->_tmp19_ = string_to_string (_data_->_tmp18_);
		_data_->_tmp20_ = NULL;
		_data_->_tmp20_ = g_strconcat ("PIN ", _data_->_tmp19_, " not accepted", NULL);
		_data_->_tmp21_ = _data_->_tmp20_;
		_data_->_tmp22_ = g_error_new_literal (FREE_SMARTPHONE_GSM_ERROR, FREE_SMARTPHONE_GSM_ERROR_SIM_AUTH_FAILED, _data_->_tmp21_);
		_data_->_tmp23_ = _data_->_tmp22_;
		_g_free0 (_data_->_tmp21_);
		_data_->_inner_error_ = _data_->_tmp23_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	fso_gsm_gatherSimStatusAndUpdate (NULL, NULL);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FreescaleNeptuneNeptuneSimSendAuthCode* freescale_neptune_neptune_sim_send_auth_code_construct (GType object_type) {
	FreescaleNeptuneNeptuneSimSendAuthCode * self = NULL;
	self = (FreescaleNeptuneNeptuneSimSendAuthCode*) fso_gsm_sim_send_auth_code_construct (object_type);
	return self;
}


FreescaleNeptuneNeptuneSimSendAuthCode* freescale_neptune_neptune_sim_send_auth_code_new (void) {
	return freescale_neptune_neptune_sim_send_auth_code_construct (FREESCALE_NEPTUNE_TYPE_NEPTUNE_SIM_SEND_AUTH_CODE);
}


static void freescale_neptune_neptune_sim_send_auth_code_class_init (FreescaleNeptuneNeptuneSimSendAuthCodeClass * klass) {
	freescale_neptune_neptune_sim_send_auth_code_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_SEND_AUTH_CODE_CLASS (klass)->run = freescale_neptune_neptune_sim_send_auth_code_real_run;
	FSO_GSM_SIM_SEND_AUTH_CODE_CLASS (klass)->run_finish = freescale_neptune_neptune_sim_send_auth_code_real_run_finish;
}


static void freescale_neptune_neptune_sim_send_auth_code_instance_init (FreescaleNeptuneNeptuneSimSendAuthCode * self) {
}


/**
 * Modem violating GSM 07.07 here.
 *
 * Format seems to be +CPIN=<number>,"<PIN>", where 1 is PIN1, 2 may be PIN2 or PUK1
 **/
GType freescale_neptune_neptune_sim_send_auth_code_get_type (void) {
	return freescale_neptune_neptune_sim_send_auth_code_type_id;
}


GType freescale_neptune_neptune_sim_send_auth_code_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (FreescaleNeptuneNeptuneSimSendAuthCodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) freescale_neptune_neptune_sim_send_auth_code_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FreescaleNeptuneNeptuneSimSendAuthCode), 0, (GInstanceInitFunc) freescale_neptune_neptune_sim_send_auth_code_instance_init, NULL };
	freescale_neptune_neptune_sim_send_auth_code_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_SIM_SEND_AUTH_CODE, "FreescaleNeptuneNeptuneSimSendAuthCode", &g_define_type_info, 0);
	return freescale_neptune_neptune_sim_send_auth_code_type_id;
}


static void freescale_neptune_neptune_network_register_real_run_data_free (gpointer _data) {
	FreescaleNeptuneNeptuneNetworkRegisterRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FreescaleNeptuneNeptuneNetworkRegisterRunData, _data_);
}


static void freescale_neptune_neptune_network_register_real_run (FsoGsmNetworkRegister* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneNetworkRegister * self;
	FreescaleNeptuneNeptuneNetworkRegisterRunData* _data_;
	FreescaleNeptuneNeptuneNetworkRegister* _tmp0_;
	self = (FreescaleNeptuneNeptuneNetworkRegister*) base;
	_data_ = g_slice_new0 (FreescaleNeptuneNeptuneNetworkRegisterRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, freescale_neptune_neptune_network_register_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, freescale_neptune_neptune_network_register_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	freescale_neptune_neptune_network_register_real_run_co (_data_);
}


static void freescale_neptune_neptune_network_register_real_run_finish (FsoGsmNetworkRegister* base, GAsyncResult* _res_, GError** error) {
	FreescaleNeptuneNeptuneNetworkRegisterRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void freescale_neptune_neptune_network_register_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneNetworkRegisterRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	freescale_neptune_neptune_network_register_real_run_co (_data_);
}


static gboolean freescale_neptune_neptune_network_register_real_run_co (FreescaleNeptuneNeptuneNetworkRegisterRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	g_usleep ((gulong) (4000 * 1000));
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_COPS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+COPS");
	_data_->cmd = (FsoGsmPlusCOPS*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_cops_issue (_data_->cmd, FSO_GSM_PLUS_COPS_ACTION_REGISTER_WITH_BEST_PROVIDER, FSO_GSM_PLUS_COPS_FORMAT_ALPHANUMERIC, 0);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, freescale_neptune_neptune_network_register_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FreescaleNeptuneNeptuneNetworkRegister* freescale_neptune_neptune_network_register_construct (GType object_type) {
	FreescaleNeptuneNeptuneNetworkRegister * self = NULL;
	self = (FreescaleNeptuneNeptuneNetworkRegister*) fso_gsm_network_register_construct (object_type);
	return self;
}


FreescaleNeptuneNeptuneNetworkRegister* freescale_neptune_neptune_network_register_new (void) {
	return freescale_neptune_neptune_network_register_construct (FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_REGISTER);
}


static void freescale_neptune_neptune_network_register_class_init (FreescaleNeptuneNeptuneNetworkRegisterClass * klass) {
	freescale_neptune_neptune_network_register_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_REGISTER_CLASS (klass)->run = freescale_neptune_neptune_network_register_real_run;
	FSO_GSM_NETWORK_REGISTER_CLASS (klass)->run_finish = freescale_neptune_neptune_network_register_real_run_finish;
}


static void freescale_neptune_neptune_network_register_instance_init (FreescaleNeptuneNeptuneNetworkRegister * self) {
}


/**
 * Network Mediators
 **/
GType freescale_neptune_neptune_network_register_get_type (void) {
	return freescale_neptune_neptune_network_register_type_id;
}


GType freescale_neptune_neptune_network_register_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (FreescaleNeptuneNeptuneNetworkRegisterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) freescale_neptune_neptune_network_register_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FreescaleNeptuneNeptuneNetworkRegister), 0, (GInstanceInitFunc) freescale_neptune_neptune_network_register_instance_init, NULL };
	freescale_neptune_neptune_network_register_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_NETWORK_REGISTER, "FreescaleNeptuneNeptuneNetworkRegister", &g_define_type_info, 0);
	return freescale_neptune_neptune_network_register_type_id;
}


static void freescale_neptune_neptune_network_unregister_real_run_data_free (gpointer _data) {
	FreescaleNeptuneNeptuneNetworkUnregisterRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FreescaleNeptuneNeptuneNetworkUnregisterRunData, _data_);
}


static void freescale_neptune_neptune_network_unregister_real_run (FsoGsmNetworkUnregister* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneNetworkUnregister * self;
	FreescaleNeptuneNeptuneNetworkUnregisterRunData* _data_;
	FreescaleNeptuneNeptuneNetworkUnregister* _tmp0_;
	self = (FreescaleNeptuneNeptuneNetworkUnregister*) base;
	_data_ = g_slice_new0 (FreescaleNeptuneNeptuneNetworkUnregisterRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, freescale_neptune_neptune_network_unregister_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, freescale_neptune_neptune_network_unregister_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	freescale_neptune_neptune_network_unregister_real_run_co (_data_);
}


static void freescale_neptune_neptune_network_unregister_real_run_finish (FsoGsmNetworkUnregister* base, GAsyncResult* _res_, GError** error) {
	FreescaleNeptuneNeptuneNetworkUnregisterRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void freescale_neptune_neptune_network_unregister_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneNetworkUnregisterRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	freescale_neptune_neptune_network_unregister_real_run_co (_data_);
}


static gboolean freescale_neptune_neptune_network_unregister_real_run_co (FreescaleNeptuneNeptuneNetworkUnregisterRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_COPS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+COPS");
	_data_->cmd = (FsoGsmPlusCOPS*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_cops_issue (_data_->cmd, FSO_GSM_PLUS_COPS_ACTION_UNREGISTER, FSO_GSM_PLUS_COPS_FORMAT_ALPHANUMERIC, 0);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, freescale_neptune_neptune_network_unregister_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	g_usleep ((gulong) (4000 * 1000));
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FreescaleNeptuneNeptuneNetworkUnregister* freescale_neptune_neptune_network_unregister_construct (GType object_type) {
	FreescaleNeptuneNeptuneNetworkUnregister * self = NULL;
	self = (FreescaleNeptuneNeptuneNetworkUnregister*) fso_gsm_network_unregister_construct (object_type);
	return self;
}


FreescaleNeptuneNeptuneNetworkUnregister* freescale_neptune_neptune_network_unregister_new (void) {
	return freescale_neptune_neptune_network_unregister_construct (FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_UNREGISTER);
}


static void freescale_neptune_neptune_network_unregister_class_init (FreescaleNeptuneNeptuneNetworkUnregisterClass * klass) {
	freescale_neptune_neptune_network_unregister_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_UNREGISTER_CLASS (klass)->run = freescale_neptune_neptune_network_unregister_real_run;
	FSO_GSM_NETWORK_UNREGISTER_CLASS (klass)->run_finish = freescale_neptune_neptune_network_unregister_real_run_finish;
}


static void freescale_neptune_neptune_network_unregister_instance_init (FreescaleNeptuneNeptuneNetworkUnregister * self) {
}


GType freescale_neptune_neptune_network_unregister_get_type (void) {
	return freescale_neptune_neptune_network_unregister_type_id;
}


GType freescale_neptune_neptune_network_unregister_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (FreescaleNeptuneNeptuneNetworkUnregisterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) freescale_neptune_neptune_network_unregister_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FreescaleNeptuneNeptuneNetworkUnregister), 0, (GInstanceInitFunc) freescale_neptune_neptune_network_unregister_instance_init, NULL };
	freescale_neptune_neptune_network_unregister_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_NETWORK_UNREGISTER, "FreescaleNeptuneNeptuneNetworkUnregister", &g_define_type_info, 0);
	return freescale_neptune_neptune_network_unregister_type_id;
}


static void freescale_neptune_neptune_call_list_calls_real_run_data_free (gpointer _data) {
	FreescaleNeptuneNeptuneCallListCallsRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (FreescaleNeptuneNeptuneCallListCallsRunData, _data_);
}


static void freescale_neptune_neptune_call_list_calls_real_run (FsoGsmCallListCalls* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneCallListCalls * self;
	FreescaleNeptuneNeptuneCallListCallsRunData* _data_;
	FreescaleNeptuneNeptuneCallListCalls* _tmp0_;
	self = (FreescaleNeptuneNeptuneCallListCalls*) base;
	_data_ = g_slice_new0 (FreescaleNeptuneNeptuneCallListCallsRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, freescale_neptune_neptune_call_list_calls_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, freescale_neptune_neptune_call_list_calls_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	freescale_neptune_neptune_call_list_calls_real_run_co (_data_);
}


static void freescale_neptune_neptune_call_list_calls_real_run_finish (FsoGsmCallListCalls* base, GAsyncResult* _res_, GError** error) {
	FreescaleNeptuneNeptuneCallListCallsRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void freescale_neptune_neptune_call_list_calls_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FreescaleNeptuneNeptuneCallListCallsRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	freescale_neptune_neptune_call_list_calls_real_run_co (_data_);
}


static gboolean freescale_neptune_neptune_call_list_calls_real_run_co (FreescaleNeptuneNeptuneCallListCallsRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CLCC, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CLCC");
	_data_->cmd = (FsoGsmPlusCLCC*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_clcc_query (_data_->cmd);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, freescale_neptune_neptune_call_list_calls_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkMultiResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp8_ = _data_->cmd->calls;
	_data_->_tmp8__length1 = _data_->cmd->calls_length1;
	fso_gsm_call_list_calls_set_calls ((FsoGsmCallListCalls*) _data_->self, _data_->_tmp8_, _data_->_tmp8__length1);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FreescaleNeptuneNeptuneCallListCalls* freescale_neptune_neptune_call_list_calls_construct (GType object_type) {
	FreescaleNeptuneNeptuneCallListCalls * self = NULL;
	self = (FreescaleNeptuneNeptuneCallListCalls*) fso_gsm_call_list_calls_construct (object_type);
	return self;
}


FreescaleNeptuneNeptuneCallListCalls* freescale_neptune_neptune_call_list_calls_new (void) {
	return freescale_neptune_neptune_call_list_calls_construct (FREESCALE_NEPTUNE_TYPE_NEPTUNE_CALL_LIST_CALLS);
}


static void freescale_neptune_neptune_call_list_calls_class_init (FreescaleNeptuneNeptuneCallListCallsClass * klass) {
	freescale_neptune_neptune_call_list_calls_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_CALL_LIST_CALLS_CLASS (klass)->run = freescale_neptune_neptune_call_list_calls_real_run;
	FSO_GSM_CALL_LIST_CALLS_CLASS (klass)->run_finish = freescale_neptune_neptune_call_list_calls_real_run_finish;
}


static void freescale_neptune_neptune_call_list_calls_instance_init (FreescaleNeptuneNeptuneCallListCalls * self) {
}


/**
 * Neptune replies to +CLCC? but not to +CLCC
 * So we use cmd.query() here instead of cmd.execute()
 **/
GType freescale_neptune_neptune_call_list_calls_get_type (void) {
	return freescale_neptune_neptune_call_list_calls_type_id;
}


GType freescale_neptune_neptune_call_list_calls_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (FreescaleNeptuneNeptuneCallListCallsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) freescale_neptune_neptune_call_list_calls_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FreescaleNeptuneNeptuneCallListCalls), 0, (GInstanceInitFunc) freescale_neptune_neptune_call_list_calls_instance_init, NULL };
	freescale_neptune_neptune_call_list_calls_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_CALL_LIST_CALLS, "FreescaleNeptuneNeptuneCallListCalls", &g_define_type_info, 0);
	return freescale_neptune_neptune_call_list_calls_type_id;
}


/**
 * Register all mediators
 **/
void freescale_neptune_registerNeptuneMediators (GeeHashMap* table) {
	GeeHashMap* _tmp0_;
	GeeHashMap* _tmp1_;
	GeeHashMap* _tmp2_;
	GeeHashMap* _tmp3_;
	GeeHashMap* _tmp4_;
	g_return_if_fail (table != NULL);
	_tmp0_ = table;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp0_, GINT_TO_POINTER (FSO_GSM_TYPE_DEVICE_GET_INFORMATION), GINT_TO_POINTER (FREESCALE_NEPTUNE_TYPE_NEPTUNE_DEVICE_GET_INFORMATION));
	_tmp1_ = table;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp1_, GINT_TO_POINTER (FSO_GSM_TYPE_SIM_SEND_AUTH_CODE), GINT_TO_POINTER (FREESCALE_NEPTUNE_TYPE_NEPTUNE_SIM_SEND_AUTH_CODE));
	_tmp2_ = table;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp2_, GINT_TO_POINTER (FSO_GSM_TYPE_NETWORK_REGISTER), GINT_TO_POINTER (FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_REGISTER));
	_tmp3_ = table;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp3_, GINT_TO_POINTER (FSO_GSM_TYPE_NETWORK_UNREGISTER), GINT_TO_POINTER (FREESCALE_NEPTUNE_TYPE_NEPTUNE_NETWORK_UNREGISTER));
	_tmp4_ = table;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp4_, GINT_TO_POINTER (FSO_GSM_TYPE_CALL_LIST_CALLS), GINT_TO_POINTER (FREESCALE_NEPTUNE_TYPE_NEPTUNE_CALL_LIST_CALLS));
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



