[gupnp] DeviceInfo: Rename virtual functions



commit 69527ea481118815851475659c75b504b4d61b6f
Author: Jens Georg <mail jensge org>
Date:   Fri Dec 31 09:55:13 2021 +0100

    DeviceInfo: Rename virtual functions
    
    The functions were clashing with similarly named non-virtual functiions
    which was confusing gobject-introspection

 libgupnp/gupnp-device-info.c  | 74 ++++++++++++++++++++++++++++++++++++++-----
 libgupnp/gupnp-device-info.h  | 17 ++++------
 libgupnp/gupnp-device-proxy.c |  4 +--
 libgupnp/gupnp-device.c       |  4 +--
 4 files changed, 77 insertions(+), 22 deletions(-)
---
diff --git a/libgupnp/gupnp-device-info.c b/libgupnp/gupnp-device-info.c
index 9d514ce..b329748 100644
--- a/libgupnp/gupnp-device-info.c
+++ b/libgupnp/gupnp-device-info.c
@@ -343,6 +343,61 @@ gupnp_device_info_class_init (GUPnPDeviceInfoClass *klass)
                                        G_PARAM_STATIC_BLURB));
 }
 
+/**
+ * gupnp_device_info_get_element:
+ * @info: a #GUPnPDeviceInfo
+ *
+ * Returns: the xmlNode associated with this device info
+ */
+xmlNode *
+gupnp_device_info_get_element (GUPnPDeviceInfo *info)
+{
+        g_return_val_if_fail (GUPNP_IS_DEVICE_INFO (info), NULL);
+        GUPnPDeviceInfoClass *class = GUPNP_DEVICE_INFO_GET_CLASS (info);
+
+        g_return_val_if_fail (class->get_element, NULL);
+
+        return class->get_element (info);
+}
+
+/**
+ * gupnp_device_info_create_device_instance:
+ * @info: a #GUPnPDeviceInfo
+ *
+ * Returns: the xmlNode associated with this device info
+ */
+GUPnPDeviceInfo *
+gupnp_device_info_create_device_instance (GUPnPDeviceInfo *info,
+                                          xmlNode *element)
+{
+        g_return_val_if_fail (GUPNP_IS_DEVICE_INFO (info), NULL);
+        GUPnPDeviceInfoClass *class = GUPNP_DEVICE_INFO_GET_CLASS (info);
+
+        g_return_val_if_fail (class->create_device_instance, NULL);
+
+        return class->create_device_instance (info, element);
+
+}
+
+/**
+ * gupnp_device_info_create_service_instance:
+ * @info: a #GUPnPDeviceInfo
+ *
+ * Returns: the xmlNode associated with this device info
+ */
+GUPnPServiceInfo *
+gupnp_device_info_create_service_instance (GUPnPDeviceInfo *info,
+                                           xmlNode *element)
+{
+        g_return_val_if_fail (GUPNP_IS_DEVICE_INFO (info), NULL);
+        GUPnPDeviceInfoClass *class = GUPNP_DEVICE_INFO_GET_CLASS (info);
+
+        g_return_val_if_fail (class->create_service_instance, NULL);
+
+        return class->create_service_instance (info, element);
+
+}
+
 /**
  * gupnp_device_info_get_resource_factory:
  * @device_info: A #GUPnPDeviceInfo
@@ -1156,7 +1211,7 @@ gupnp_device_info_list_devices (GUPnPDeviceInfo *info)
 
         class = GUPNP_DEVICE_INFO_GET_CLASS (info);
 
-        g_return_val_if_fail (class->get_device, NULL);
+        g_return_val_if_fail (class->create_device_instance != NULL, NULL);
 
         devices = NULL;
 
@@ -1172,7 +1227,7 @@ gupnp_device_info_list_devices (GUPnPDeviceInfo *info)
                 if (!strcmp ("device", (char *) element->name)) {
                         GUPnPDeviceInfo *child;
 
-                        child = class->get_device (info, element);
+                        child = gupnp_device_info_create_device_instance (info, element);
                         devices = g_list_prepend (devices, child);
                 }
         }
@@ -1254,7 +1309,7 @@ gupnp_device_info_get_device (GUPnPDeviceInfo *info,
 
         class = GUPNP_DEVICE_INFO_GET_CLASS (info);
 
-        g_return_val_if_fail (class->get_device, NULL);
+        g_return_val_if_fail (class->create_service_instance != NULL, NULL);
 
         device = NULL;
         priv = gupnp_device_info_get_instance_private (info);
@@ -1281,7 +1336,10 @@ gupnp_device_info_get_device (GUPnPDeviceInfo *info,
                                 continue;
 
                         if (resource_type_match (type, (char *) type_str))
-                                device = class->get_device (info, element);
+                                device =
+                                        gupnp_device_info_create_device_instance (
+                                                info,
+                                                element);
 
                         xmlFree (type_str);
 
@@ -1319,7 +1377,7 @@ gupnp_device_info_list_services (GUPnPDeviceInfo *info)
 
         class = GUPNP_DEVICE_INFO_GET_CLASS (info);
 
-        g_return_val_if_fail (class->get_service, NULL);
+        g_return_val_if_fail (class->create_service_instance, NULL);
 
         services = NULL;
 
@@ -1335,7 +1393,7 @@ gupnp_device_info_list_services (GUPnPDeviceInfo *info)
                 if (!strcmp ("service", (char *) element->name)) {
                         GUPnPServiceInfo *service;
 
-                        service = class->get_service (info, element);
+                        service = gupnp_device_info_create_service_instance (info, element);
                         services = g_list_prepend (services, service);
                 }
         }
@@ -1417,7 +1475,7 @@ gupnp_device_info_get_service (GUPnPDeviceInfo *info,
 
         class = GUPNP_DEVICE_INFO_GET_CLASS (info);
 
-        g_return_val_if_fail (class->get_service, NULL);
+        g_return_val_if_fail (class->create_service_instance, NULL);
 
         service = NULL;
 
@@ -1445,7 +1503,7 @@ gupnp_device_info_get_service (GUPnPDeviceInfo *info,
                                 continue;
 
                         if (resource_type_match (type, (char *) type_str))
-                                service = class->get_service (info, element);
+                                service = gupnp_device_info_create_service_instance (info, element);
 
                         xmlFree (type_str);
 
diff --git a/libgupnp/gupnp-device-info.h b/libgupnp/gupnp-device-info.h
index 2fb2a85..affeeb4 100644
--- a/libgupnp/gupnp-device-info.h
+++ b/libgupnp/gupnp-device-info.h
@@ -31,16 +31,13 @@ struct _GUPnPDeviceInfoClass {
         GObjectClass parent_class;
 
         /* vtable */
-        xmlNode          * (* get_element) (GUPnPDeviceInfo *info);
-
-        /* FIXME: Once we can break API/ABI, clean-up and rename the
-         * _get_device/_get_service functions */
-#ifndef GOBJECT_INTROSPECTION_SKIP
-        GUPnPDeviceInfo  * (* get_device)  (GUPnPDeviceInfo *info,
-                                            xmlNode         *element);
-        GUPnPServiceInfo * (* get_service) (GUPnPDeviceInfo *info,
-                                            xmlNode         *element);
-#endif
+        xmlNode *(*get_element) (GUPnPDeviceInfo *info);
+
+        GUPnPDeviceInfo *(*create_device_instance) (GUPnPDeviceInfo *info,
+                                                    xmlNode *element);
+        GUPnPServiceInfo *(*create_service_instance) (GUPnPDeviceInfo *info,
+                                                      xmlNode *element);
+
         /* future padding */
         void (* _gupnp_reserved1) (void);
         void (* _gupnp_reserved2) (void);
diff --git a/libgupnp/gupnp-device-proxy.c b/libgupnp/gupnp-device-proxy.c
index 762dae0..cb87904 100644
--- a/libgupnp/gupnp-device-proxy.c
+++ b/libgupnp/gupnp-device-proxy.c
@@ -98,7 +98,7 @@ gupnp_device_proxy_class_init (GUPnPDeviceProxyClass *klass)
 
         info_class = GUPNP_DEVICE_INFO_CLASS (klass);
 
-        info_class->get_device  = gupnp_device_proxy_get_device;
-        info_class->get_service = gupnp_device_proxy_get_service;
+        info_class->create_device_instance  = gupnp_device_proxy_get_device;
+        info_class->create_service_instance = gupnp_device_proxy_get_service;
 }
 
diff --git a/libgupnp/gupnp-device.c b/libgupnp/gupnp-device.c
index ea49f57..523a248 100644
--- a/libgupnp/gupnp-device.c
+++ b/libgupnp/gupnp-device.c
@@ -218,8 +218,8 @@ gupnp_device_class_init (GUPnPDeviceClass *klass)
 
         info_class = GUPNP_DEVICE_INFO_CLASS (klass);
 
-        info_class->get_device  = gupnp_device_get_device;
-        info_class->get_service = gupnp_device_get_service;
+        info_class->create_device_instance  = gupnp_device_get_device;
+        info_class->create_service_instance = gupnp_device_get_service;
 
         /**
          * GUPnPDevice:root-device:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]