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'.
This commit is contained in:
Aleksander Morgado
2011-11-22 11:03:03 +01:00
parent 0e9ed6e5fe
commit 23367c7186
5 changed files with 304 additions and 2 deletions

View File

@@ -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

View File

@@ -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 ***/

View File

@@ -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 ***/

View File

@@ -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) \

View File

@@ -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;
}