NetworkManager/libnm/nm-wimax-nsp.c
Thomas Haller dab1d780fd libnm: retire deprecated WiMAX NMObject types
WiMAX is deprecated since NetworkManager 1.2.0. Note that also
NetworkManager on server side no longer supports this type, hence
the server's D-Bus API will never expose devices of this type.

Note that NMDeviceWimax and NMWimaxNsp are NMObject types. That means,
they are instantiated by NMClient to represent information on the D-Bus
interface. As NetworkManager no longer exposes WiMAX devices, such
devices are never created. Note that it makes no sense that a user would
directly instantiate NMObject types, because they only work together with
NMClient.

Don't drop the related symbols and definitions from libnm, so that there
is no API/ABI change (as far as building and linking is concerned). But
make the types defunctional (which of course is a behavioral API change).
Calling the API now triggers a g_return_*() warning.

Also belatedly mark the WimaxNsp API as deprecated. It should have been
done in 1.2. Note that here we deprecate the API and retire it at the
same time. Optimally, we would have deprecated it a few releases ago,
before retiring it. However, marking something for deprecation is anyway
no excuse for anything. I mean, removing or retiring API is usually
painful, regardless whether it was marked for deprecation or not. In this
case, there is no possibility that a libnm user gets hold on a NMDeviceWimax
or NMWimaxNsp instance, because NMClient simply no longer instantiates
them. Hence, this change should not affect any user in practice.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/316
2019-10-23 15:31:51 +02:00

188 lines
4.8 KiB
C

// SPDX-License-Identifier: LGPL-2.1+
/*
* Copyright (C) 2011 Red Hat, Inc.
*/
#include "nm-default.h"
#include "nm-wimax-nsp.h"
/*****************************************************************************/
NM_GOBJECT_PROPERTIES_DEFINE_BASE (
PROP_NAME,
PROP_SIGNAL_QUALITY,
PROP_NETWORK_TYPE,
);
struct _NMWimaxNsp {
NMObject parent;
};
struct _NMWimaxNspClass {
NMObjectClass parent;
};
G_DEFINE_TYPE (NMWimaxNsp, nm_wimax_nsp, NM_TYPE_OBJECT)
#define NM_WIMAX_NSP_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMWimaxNsp, NM_IS_WIMAX_NSP, NMObject)
/*****************************************************************************/
/**
* nm_wimax_nsp_get_name:
* @nsp: a #NMWimaxNsp
*
* Gets the name of the wimax NSP
*
* Returns: the name
*
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
**/
const char *
nm_wimax_nsp_get_name (NMWimaxNsp *nsp)
{
g_return_val_if_reached (NULL);
}
/**
* nm_wimax_nsp_get_signal_quality:
* @nsp: a #NMWimaxNsp
*
* Gets the WPA signal quality of the wimax NSP.
*
* Returns: the signal quality
*
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
**/
guint32
nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp)
{
g_return_val_if_reached (0);
}
/**
* nm_wimax_nsp_get_network_type:
* @nsp: a #NMWimaxNsp
*
* Gets the network type of the wimax NSP.
*
* Returns: the network type
*
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
**/
NMWimaxNspNetworkType
nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp)
{
g_return_val_if_reached (NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN);
}
/**
* nm_wimax_nsp_connection_valid:
* @nsp: an #NMWimaxNsp to validate @connection against
* @connection: an #NMConnection to validate against @nsp
*
* Validates a given connection against a given WiMAX NSP to ensure that the
* connection may be activated with that NSP. The connection must match the
* @nsp's network name and other attributes.
*
* Returns: %TRUE if the connection may be activated with this WiMAX NSP,
* %FALSE if it cannot be.
*
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
**/
gboolean
nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection)
{
g_return_val_if_reached (FALSE);
}
/**
* nm_wimax_nsp_filter_connections:
* @nsp: an #NMWimaxNsp to filter connections for
* @connections: (element-type NMConnection): an array of #NMConnections to
* filter
*
* Filters a given array of connections for a given #NMWimaxNsp object and
* return connections which may be activated with the NSP. Any returned
* connections will match the @nsp's network name and other attributes.
*
* Returns: (transfer full) (element-type NMConnection): an array of
* #NMConnections that could be activated with the given @nsp. The array should
* be freed with g_ptr_array_unref() when it is no longer required.
*
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
**/
GPtrArray *
nm_wimax_nsp_filter_connections (NMWimaxNsp *nsp, const GPtrArray *connections)
{
g_return_val_if_reached (NULL);
}
/*****************************************************************************/
static void
get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
g_return_if_reached ();
}
static void
nm_wimax_nsp_init (NMWimaxNsp *nsp)
{
g_return_if_reached ();
}
static void
nm_wimax_nsp_class_init (NMWimaxNspClass *nsp_class)
{
GObjectClass *object_class = G_OBJECT_CLASS (nsp_class);
object_class->get_property = get_property;
/**
* NMWimaxNsp:name:
*
* The name of the WiMAX NSP.
*
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
**/
obj_properties[PROP_NAME] =
g_param_spec_string (NM_WIMAX_NSP_NAME, "", "",
NULL,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS);
/**
* NMWimaxNsp:signal-quality:
*
* The signal quality of the WiMAX NSP.
*
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
**/
obj_properties[PROP_SIGNAL_QUALITY] =
g_param_spec_uint (NM_WIMAX_NSP_SIGNAL_QUALITY, "", "",
0, 100, 0,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS);
/**
* NMWimaxNsp:network-type:
*
* The network type of the WiMAX NSP.
*
* Deprecated: 1.22. WiMAX is no longer supported by NetworkManager since 1.2.0
**/
obj_properties[PROP_NETWORK_TYPE] =
g_param_spec_enum (NM_WIMAX_NSP_NETWORK_TYPE, "", "",
NM_TYPE_WIMAX_NSP_NETWORK_TYPE,
NM_WIMAX_NSP_NETWORK_TYPE_UNKNOWN,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties);
}