diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-11-22 11:03:03 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:18 +0100 |
commit | 23367c718643e621a08922aaa5be0542fe9c47b7 (patch) | |
tree | 81481c3bed8fe2da6ef6674d4b580ed3c8c00a9c | |
parent | 0e9ed6e5fed70c873c597b91a9b844df44f9ffc0 (diff) |
libmm-common: include Errors type information
The code to handle the Errors type information is automatically built with
`glib-mkenums' and the new templates kept under `build-aux'.
-rw-r--r-- | build-aux/Makefile.am | 4 | ||||
-rw-r--r-- | build-aux/mm-errors-types.c.template | 43 | ||||
-rw-r--r-- | build-aux/mm-errors-types.h.template | 27 | ||||
-rw-r--r-- | libmm-common/Makefile.am | 16 | ||||
-rw-r--r-- | libmm-common/mm-errors-quarks.c | 216 |
5 files changed, 304 insertions, 2 deletions
diff --git a/build-aux/Makefile.am b/build-aux/Makefile.am index 652e9325..9fc2b976 100644 --- a/build-aux/Makefile.am +++ b/build-aux/Makefile.am @@ -3,4 +3,6 @@ EXTRA_DIST = \ header-generator.xsl \ header-generator-new.xsl \ mm-enums-types.h.template \ - mm-enums-types.c.template + mm-enums-types.c.template \ + mm-enums-errors.h.template \ + mm-enums-errors.c.template diff --git a/build-aux/mm-errors-types.c.template b/build-aux/mm-errors-types.c.template new file mode 100644 index 00000000..4505b7d9 --- /dev/null +++ b/build-aux/mm-errors-types.c.template @@ -0,0 +1,43 @@ +/*** BEGIN file-header ***/ +#include "ModemManager-errors.h" +#include "mm-errors-types.h" + +/*** END file-header ***/ + +/*** BEGIN file-production ***/ +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ + +/* @enum_name@_quark() implemented in mm-errors-quarks.c */ + +GType +@enum_name@_get_type (void) +{ + static volatile gsize g_define_type_id__volatile = 0; + + if (g_once_init_enter (&g_define_type_id__volatile)) + { + static const G@Type@Value values[] = { +/*** END value-header ***/ + +/*** BEGIN value-production ***/ + { @VALUENAME@, "@VALUENAME@", "@valuenick@" }, +/*** END value-production ***/ + +/*** BEGIN value-tail ***/ + { 0, NULL, NULL } + }; + GType g_define_type_id = + g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + } + + return g_define_type_id__volatile; +} + +/*** END value-tail ***/ + +/*** BEGIN file-tail ***/ +/*** END file-tail ***/ diff --git a/build-aux/mm-errors-types.h.template b/build-aux/mm-errors-types.h.template new file mode 100644 index 00000000..1a9baf42 --- /dev/null +++ b/build-aux/mm-errors-types.h.template @@ -0,0 +1,27 @@ +/*** BEGIN file-header ***/ + +#ifndef __MM_ERRORS_TYPES_H__ +#define __MM_ERRORS_TYPES_H__ + +#include <glib-object.h> + +G_BEGIN_DECLS +/*** END file-header ***/ + +/*** BEGIN file-production ***/ + +/* enumerations from "@filename@" */ +/*** END file-production ***/ + +/*** BEGIN value-header ***/ +GQuark @enum_name@_quark (void); /* implemented in mm-errors-quarks.c */ +GType @enum_name@_get_type (void) G_GNUC_CONST; +#define @ENUMNAME@ (@enum_name@_quark ()) +#define @ENUMPREFIX@TYPE_@ENUMSHORT@ (@enum_name@_get_type ()) +/*** END value-header ***/ + +/*** BEGIN file-tail ***/ +G_END_DECLS + +#endif /* __MM_ERRORS_TYPES_H__ */ +/*** END file-tail ***/
\ No newline at end of file diff --git a/libmm-common/Makefile.am b/libmm-common/Makefile.am index 52e4fc35..9f329f40 100644 --- a/libmm-common/Makefile.am +++ b/libmm-common/Makefile.am @@ -3,6 +3,7 @@ noinst_LTLIBRARIES = libmm-common.la GENERATED_H = \ mm-enums-types.h \ + mm-errors-types.h \ mm-gdbus-manager.h \ mm-gdbus-sim.h \ mm-gdbus-sms.h \ @@ -11,6 +12,7 @@ GENERATED_H = \ GENERATED_C = \ mm-enums-types.c \ + mm-errors-types.c \ mm-gdbus-manager.c \ mm-gdbus-sim.c \ mm-gdbus-sms.c \ @@ -43,6 +45,17 @@ mm-enums-types.c: $(top_srcdir)/include/ModemManager-enums.h $(top_srcdir)/build --template $(top_srcdir)/build-aux/mm-enums-types.c.template \ $(top_srcdir)/include/ModemManager-enums.h > $@ +# Error types +mm-errors-types.h: $(top_srcdir)/include/ModemManager-errors.h $(top_srcdir)/build-aux/mm-errors-types.h.template + $(AM_V_GEN) glib-mkenums \ + --template $(top_srcdir)/build-aux/mm-errors-types.h.template \ + $(top_srcdir)/include/ModemManager-errors.h > $@ + +mm-errors-types.c: $(top_srcdir)/include/ModemManager-errors.h $(top_srcdir)/build-aux/mm-errors-types.c.template mm-errors-types.h + $(AM_V_GEN) glib-mkenums \ + --template $(top_srcdir)/build-aux/mm-errors-types.c.template \ + $(top_srcdir)/include/ModemManager-errors.h > $@ + # Manager interface mm_gdbus_manager_generated = \ mm-gdbus-manager.h \ @@ -126,7 +139,8 @@ $(mm_gdbus_bearer_generated): $(top_srcdir)/new/org.freedesktop.ModemManager1.Be libmm_common_la_SOURCES = \ $(GENERATED_H) \ - $(GENERATED_C) + $(GENERATED_C) \ + mm-errors-quarks.c libmm_common_la_CPPFLAGS = \ $(MM_CFLAGS) \ diff --git a/libmm-common/mm-errors-quarks.c b/libmm-common/mm-errors-quarks.c new file mode 100644 index 00000000..07cbfc7b --- /dev/null +++ b/libmm-common/mm-errors-quarks.c @@ -0,0 +1,216 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * 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: + * + * Copyright (C) 2011 - Google, Inc. + */ + +/* NOTE: ideally, this file should be autogenerated by glib-mkenums, along with + * mm-errors-types.[c|h], but currently glib-mkenums is not enough for the kind + * of substitutions we need, specifically when generating the DBus paths of the + * errors. See discussions at: + * https://bugzilla.gnome.org/show_bug.cgi?id=662693 + */ + +#include <gio/gio.h> + +#include "ModemManager-errors.h" +#include "mm-errors-types.h" + +#define ERROR_PREFIX "org.freedesktop.ModemManager1.Core.Error." +static const GDBusErrorEntry mm_core_error_entries[] = { + { MM_CORE_ERROR_FAILED, ERROR_PREFIX "Failed" }, + { MM_CORE_ERROR_CANCELLED, ERROR_PREFIX "Cancelled" }, + { MM_CORE_ERROR_ABORTED, ERROR_PREFIX "Aborted" }, + { MM_CORE_ERROR_UNSUPPORTED, ERROR_PREFIX "Unsupported" }, + { MM_CORE_ERROR_NO_PLUGINS, ERROR_PREFIX "NoPlugins" }, + { MM_CORE_ERROR_UNAUTHORIZED, ERROR_PREFIX "Unauthorized" }, + { MM_CORE_ERROR_INVALID_ARGS, ERROR_PREFIX "InvalidArgs" }, + { MM_CORE_ERROR_IN_PROGRESS, ERROR_PREFIX "InProgress" }, + { MM_CORE_ERROR_WRONG_STATE, ERROR_PREFIX "WrongState" }, +}; +#undef ERROR_PREFIX + +GQuark +mm_core_error_quark (void) +{ + static volatile gsize quark_volatile = 0; + + if (!quark_volatile) + g_dbus_error_register_error_domain ("mm-core-error-quark", + &quark_volatile, + mm_core_error_entries, + G_N_ELEMENTS (mm_core_error_entries)); + + return (GQuark) quark_volatile; +} + +#define ERROR_PREFIX "org.freedesktop.ModemManager1.MobileEquipment.Error." +static const GDBusErrorEntry mm_mobile_equipment_error_entries[] = { + /* General errors */ + { MM_MOBILE_EQUIPMENT_ERROR_PHONE_FAILURE, ERROR_PREFIX "PhoneFailure" }, + { MM_MOBILE_EQUIPMENT_ERROR_NO_CONNECTION, ERROR_PREFIX "NoConnection" }, + { MM_MOBILE_EQUIPMENT_ERROR_LINK_RESERVED, ERROR_PREFIX "LinkReserved" }, + { MM_MOBILE_EQUIPMENT_ERROR_NOT_ALLOWED, ERROR_PREFIX "NotAllowed" }, + { MM_MOBILE_EQUIPMENT_ERROR_NOT_SUPPORTED, ERROR_PREFIX "NotSupported" }, + { MM_MOBILE_EQUIPMENT_ERROR_PH_SIM_PIN, ERROR_PREFIX "PhSimPin" }, + { MM_MOBILE_EQUIPMENT_ERROR_PH_FSIM_PIN, ERROR_PREFIX "PhFsimPin" }, + { MM_MOBILE_EQUIPMENT_ERROR_PH_FSIM_PUK, ERROR_PREFIX "PhFsimPuk" }, + { MM_MOBILE_EQUIPMENT_ERROR_SIM_NOT_INSERTED, ERROR_PREFIX "SimNotInserted" }, + { MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN, ERROR_PREFIX "SimPin" }, + { MM_MOBILE_EQUIPMENT_ERROR_SIM_PUK, ERROR_PREFIX "SimPuk" }, + { MM_MOBILE_EQUIPMENT_ERROR_SIM_FAILURE, ERROR_PREFIX "SimFailure" }, + { MM_MOBILE_EQUIPMENT_ERROR_SIM_BUSY, ERROR_PREFIX "SimBusy" }, + { MM_MOBILE_EQUIPMENT_ERROR_SIM_WRONG, ERROR_PREFIX "SimWrong" }, + { MM_MOBILE_EQUIPMENT_ERROR_INCORRECT_PASSWORD, ERROR_PREFIX "IncorrectPassword" }, + { MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN2, ERROR_PREFIX "SimPin2" }, + { MM_MOBILE_EQUIPMENT_ERROR_SIM_PUK2, ERROR_PREFIX "SimPuk2" }, + { MM_MOBILE_EQUIPMENT_ERROR_MEMORY_FULL, ERROR_PREFIX "MemoryFull" }, + { MM_MOBILE_EQUIPMENT_ERROR_INVALID_INDEX, ERROR_PREFIX "InvalidIndex" }, + { MM_MOBILE_EQUIPMENT_ERROR_NOT_FOUND, ERROR_PREFIX "NotFound" }, + { MM_MOBILE_EQUIPMENT_ERROR_MEMORY_FAILURE, ERROR_PREFIX "MemoryFailure" }, + { MM_MOBILE_EQUIPMENT_ERROR_TEXT_TOO_LONG, ERROR_PREFIX "TextTooLong" }, + { MM_MOBILE_EQUIPMENT_ERROR_INVALID_CHARS, ERROR_PREFIX "InvalidChars" }, + { MM_MOBILE_EQUIPMENT_ERROR_DIAL_STRING_TOO_LONG, ERROR_PREFIX "DialStringTooLong" }, + { MM_MOBILE_EQUIPMENT_ERROR_DIAL_STRING_INVALID, ERROR_PREFIX "DialStringInvalid" }, + { MM_MOBILE_EQUIPMENT_ERROR_NO_NETWORK, ERROR_PREFIX "NoNetwork" }, + { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_TIMEOUT, ERROR_PREFIX "NetworkTimeout" }, + { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_NOT_ALLOWED, ERROR_PREFIX "NetworkNotAllowed" }, + { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_PIN, ERROR_PREFIX "NetworkPin" }, + { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_PUK, ERROR_PREFIX "NetworkPuk" }, + { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_SUBSET_PIN, ERROR_PREFIX "NetworkSubsetPin" }, + { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_SUBSET_PUK, ERROR_PREFIX "NetworkSubsetPuk" }, + { MM_MOBILE_EQUIPMENT_ERROR_SERVICE_PIN, ERROR_PREFIX "ServicePin" }, + { MM_MOBILE_EQUIPMENT_ERROR_SERVICE_PUK, ERROR_PREFIX "ServicePuk" }, + { MM_MOBILE_EQUIPMENT_ERROR_CORP_PIN, ERROR_PREFIX "CorpPin" }, + { MM_MOBILE_EQUIPMENT_ERROR_CORP_PUK, ERROR_PREFIX "CorpPuk" }, + { MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN, ERROR_PREFIX "Unknown" }, + /* GPRS related errors */ + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_MS, ERROR_PREFIX "GPRS.IllegalMs" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_ME, ERROR_PREFIX "GPRS.IllegalMe" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED, ERROR_PREFIX "GPRS.ServiceNotAllowed" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_PLMN_NOT_ALLOWED, ERROR_PREFIX "GPRS.PlmnNotAllowed" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_LOCATION_NOT_ALLOWED, ERROR_PREFIX "GPRS.LocationNotAllowed" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_ROAMING_NOT_ALLOWED, ERROR_PREFIX "GPRS.RomaingNotAllowed" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUPPORTED, ERROR_PREFIX "GPRS.ServiceOptionNotSupported" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUBSCRIBED, ERROR_PREFIX "GPRS.ServiceOptionNotSubscribed" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_OUT_OF_ORDER, ERROR_PREFIX "GPRS.ServiceOptionOutOfOrder" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_UNKNOWN, ERROR_PREFIX "GPRS.Unknown" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_PDP_AUTH_FAILURE, ERROR_PREFIX "GPRS.PdpAuthFailure" }, + { MM_MOBILE_EQUIPMENT_ERROR_GPRS_INVALID_MOBILE_CLASS, ERROR_PREFIX "GPRS.InvalidMobileClass" } +}; +#undef ERROR_PREFIX + +GQuark +mm_mobile_equipment_error_quark (void) +{ + static volatile gsize quark_volatile = 0; + + if (!quark_volatile) + g_dbus_error_register_error_domain ("mm-mobile-equipment-error-quark", + &quark_volatile, + mm_mobile_equipment_error_entries, + G_N_ELEMENTS (mm_mobile_equipment_error_entries)); + + return (GQuark) quark_volatile; +} + +#define ERROR_PREFIX "org.freedesktop.ModemManager1.Connection.Error." +static const GDBusErrorEntry mm_connection_error_entries[] = { + { MM_CONNECTION_ERROR_UNKNOWN, ERROR_PREFIX "Unknown" }, + { MM_CONNECTION_ERROR_NO_CARRIER, ERROR_PREFIX "NoCarrier" }, + { MM_CONNECTION_ERROR_NO_DIALTONE, ERROR_PREFIX "NoDialtone" }, + { MM_CONNECTION_ERROR_BUSY, ERROR_PREFIX "Busy" }, + { MM_CONNECTION_ERROR_NO_ANSWER, ERROR_PREFIX "NoAnswer" }, +}; +#undef ERROR_PREFIX + +GQuark +mm_connection_error_quark (void) +{ + static volatile gsize quark_volatile = 0; + + if (!quark_volatile) + g_dbus_error_register_error_domain ("mm-connection-error-quark", + &quark_volatile, + mm_connection_error_entries, + G_N_ELEMENTS (mm_connection_error_entries)); + + return (GQuark) quark_volatile; +} + +#define ERROR_PREFIX "org.freedesktop.ModemManager1.Serial.Error." +static const GDBusErrorEntry mm_serial_error_entries[] = { + { MM_SERIAL_ERROR_UNKNOWN, ERROR_PREFIX "Unknown" }, + { MM_SERIAL_ERROR_OPEN_FAILED, ERROR_PREFIX "OpenFailed" }, + { MM_SERIAL_ERROR_SEND_FAILED, ERROR_PREFIX "SendFailed" }, + { MM_SERIAL_ERROR_RESPONSE_TIMEOUT, ERROR_PREFIX "ResponseTimeout" }, + { MM_SERIAL_ERROR_OPEN_FAILED_NO_DEVICE, ERROR_PREFIX "OpenFailedNoDevice" }, + { MM_SERIAL_ERROR_FLASH_FAILED, ERROR_PREFIX "FlashFailed" }, + { MM_SERIAL_ERROR_NOT_OPEN, ERROR_PREFIX "NotOpen" }, +}; +#undef ERROR_PREFIX + +GQuark +mm_serial_error_quark (void) +{ + static volatile gsize quark_volatile = 0; + + if (!quark_volatile) + g_dbus_error_register_error_domain ("mm-serial-error-quark", + &quark_volatile, + mm_serial_error_entries, + G_N_ELEMENTS (mm_serial_error_entries)); + + return (GQuark) quark_volatile; +} + +#define ERROR_PREFIX "org.freedesktop.ModemManager1.Message.Error." +static const GDBusErrorEntry mm_message_error_entries[] = { + { MM_MESSAGE_ERROR_ME_FAILURE, ERROR_PREFIX "MeFailure" }, + { MM_MESSAGE_ERROR_SMS_SERVICE_RESERVED, ERROR_PREFIX "SmsServiceReserved" }, + { MM_MESSAGE_ERROR_NOT_ALLOWED, ERROR_PREFIX "NotAllowed" }, + { MM_MESSAGE_ERROR_NOT_SUPPORTED, ERROR_PREFIX "NotSupported" }, + { MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER, ERROR_PREFIX "InvalidPduParameter" }, + { MM_MESSAGE_ERROR_INVALID_TEXT_PARAMETER, ERROR_PREFIX "InvalidTextParameter" }, + { MM_MESSAGE_ERROR_SIM_NOT_INSERTED, ERROR_PREFIX "SimNotInserted" }, + { MM_MESSAGE_ERROR_SIM_PIN, ERROR_PREFIX "SimPin" }, + { MM_MESSAGE_ERROR_PH_SIM_PIN, ERROR_PREFIX "PhSimPin" }, + { MM_MESSAGE_ERROR_SIM_FAILURE, ERROR_PREFIX "SimFailure" }, + { MM_MESSAGE_ERROR_SIM_BUSY, ERROR_PREFIX "SimBusy" }, + { MM_MESSAGE_ERROR_SIM_WRONG, ERROR_PREFIX "SimWrong" }, + { MM_MESSAGE_ERROR_SIM_PUK, ERROR_PREFIX "SimPuk" }, + { MM_MESSAGE_ERROR_SIM_PIN2, ERROR_PREFIX "SimPin2" }, + { MM_MESSAGE_ERROR_SIM_PUK2, ERROR_PREFIX "SimPuk2" }, + { MM_MESSAGE_ERROR_MEMORY_FAILURE, ERROR_PREFIX "MemoryFailure" }, + { MM_MESSAGE_ERROR_INVALID_INDEX, ERROR_PREFIX "InvalidIndex" }, + { MM_MESSAGE_ERROR_MEMORY_FULL, ERROR_PREFIX "MemoryFull" }, + { MM_MESSAGE_ERROR_SMSC_ADDRESS_UNKNOWN, ERROR_PREFIX "SmscAddressUnknown" }, + { MM_MESSAGE_ERROR_NO_NETWORK, ERROR_PREFIX "NoNetwork" }, + { MM_MESSAGE_ERROR_NETWORK_TIMEOUT, ERROR_PREFIX "NetworkTimeout" }, + { MM_MESSAGE_ERROR_NO_CNMA_ACK_EXPECTED, ERROR_PREFIX "NoCdmaAckExpected" }, + { MM_MESSAGE_ERROR_UNKNOWN, ERROR_PREFIX "Unknown" } +}; +#undef ERROR_PREFIX + +GQuark +mm_message_error_quark (void) +{ + static volatile gsize quark_volatile = 0; + + if (!quark_volatile) + g_dbus_error_register_error_domain ("mm-message-error-quark", + &quark_volatile, + mm_message_error_entries, + G_N_ELEMENTS (mm_message_error_entries)); + + return (GQuark) quark_volatile; +} |