summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2021-12-31 09:55:13 +0100
committerJens Georg <mail@jensge.org>2022-01-03 09:32:43 +0100
commit69527ea481118815851475659c75b504b4d61b6f (patch)
tree9201a34479012894bed4a2046f4cc11a94d6f7a1
parent1557da804ea6c29e4e6be7fe68d59f6211794ac5 (diff)
downloadgupnp-69527ea481118815851475659c75b504b4d61b6f.tar.gz
DeviceInfo: Rename virtual functions
The functions were clashing with similarly named non-virtual functiions which was confusing gobject-introspection
-rw-r--r--libgupnp/gupnp-device-info.c74
-rw-r--r--libgupnp/gupnp-device-info.h17
-rw-r--r--libgupnp/gupnp-device-proxy.c4
-rw-r--r--libgupnp/gupnp-device.c4
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
@@ -344,6 +344,61 @@ gupnp_device_info_class_init (GUPnPDeviceInfoClass *klass)
}
/**
+ * 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: