diff options
author | Jens Georg <mail@jensge.org> | 2021-12-31 09:55:13 +0100 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2022-01-03 09:32:43 +0100 |
commit | 69527ea481118815851475659c75b504b4d61b6f (patch) | |
tree | 9201a34479012894bed4a2046f4cc11a94d6f7a1 | |
parent | 1557da804ea6c29e4e6be7fe68d59f6211794ac5 (diff) | |
download | gupnp-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.c | 74 | ||||
-rw-r--r-- | libgupnp/gupnp-device-info.h | 17 | ||||
-rw-r--r-- | libgupnp/gupnp-device-proxy.c | 4 | ||||
-rw-r--r-- | 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 @@ -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: |