mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-04-23 05:10:42 +02:00
proxy: embed private date in NMPacRunnerManager and NMProxyConfig
These are final/sealed types (that is without subclasses). We can hide the type structures and neatly embed the private data there.
This commit is contained in:
parent
27811b792c
commit
a9820a63d4
4 changed files with 59 additions and 33 deletions
|
|
@ -28,12 +28,8 @@
|
|||
#include "nm-ip4-config.h"
|
||||
#include "nm-ip6-config.h"
|
||||
|
||||
G_DEFINE_TYPE (NMPacRunnerManager, nm_pacrunner_manager, G_TYPE_OBJECT)
|
||||
|
||||
NM_DEFINE_SINGLETON_INSTANCE (NMPacRunnerManager);
|
||||
|
||||
#define NM_PACRUNNER_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_PACRUNNER_MANAGER, NMPacRunnerManagerPrivate))
|
||||
|
||||
#define PACRUNNER_DBUS_SERVICE "org.pacrunner"
|
||||
#define PACRUNNER_DBUS_INTERFACE "org.pacrunner.Manager"
|
||||
#define PACRUNNER_DBUS_PATH "/org/pacrunner/manager"
|
||||
|
|
@ -52,6 +48,30 @@ typedef struct {
|
|||
GList *remove;
|
||||
} NMPacRunnerManagerPrivate;
|
||||
|
||||
struct _NMPacRunnerManager {
|
||||
GObject parent;
|
||||
NMPacRunnerManagerPrivate _priv;
|
||||
};
|
||||
|
||||
struct _NMPacRunnerManagerClass {
|
||||
GObjectClass parent;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (NMPacRunnerManager, nm_pacrunner_manager, G_TYPE_OBJECT)
|
||||
|
||||
#define NM_PACRUNNER_MANAGER_GET_PRIVATE(self) \
|
||||
({ \
|
||||
/* preserve the const-ness of self. Unfortunately, that
|
||||
* way, @self cannot be a void pointer */ \
|
||||
typeof (self) _self = (self); \
|
||||
\
|
||||
/* Get compiler error if variable is of wrong type */ \
|
||||
_nm_unused const NMPacRunnerManager *_self2 = (_self); \
|
||||
\
|
||||
nm_assert (NM_IS_PACRUNNER_MANAGER (_self)); \
|
||||
&_self->_priv; \
|
||||
})
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#define _NMLOG_DOMAIN LOGD_PROXY
|
||||
|
|
@ -470,7 +490,7 @@ nm_pacrunner_manager_init (NMPacRunnerManager *self)
|
|||
static void
|
||||
dispose (GObject *object)
|
||||
{
|
||||
NMPacRunnerManagerPrivate *priv = NM_PACRUNNER_MANAGER_GET_PRIVATE (object);
|
||||
NMPacRunnerManagerPrivate *priv = NM_PACRUNNER_MANAGER_GET_PRIVATE ((NMPacRunnerManager *) object);
|
||||
|
||||
g_clear_pointer (&priv->iface, g_free);
|
||||
|
||||
|
|
@ -492,7 +512,5 @@ nm_pacrunner_manager_class_init (NMPacRunnerManagerClass *klass)
|
|||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (object_class, sizeof (NMPacRunnerManagerPrivate));
|
||||
|
||||
object_class->dispose = dispose;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,13 +28,7 @@
|
|||
#define NM_IS_PACRUNNER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_PACRUNNER_MANAGER))
|
||||
#define NM_PACRUNNER_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_PACRUNNER_MANAGER, NMPacRunnerManagerClass))
|
||||
|
||||
struct _NMPacRunnerManager {
|
||||
GObject parent;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
GObjectClass parent;
|
||||
} NMPacRunnerManagerClass;
|
||||
typedef struct _NMPacRunnerManagerClass NMPacRunnerManagerClass;
|
||||
|
||||
GType nm_pacrunner_manager_get_type (void);
|
||||
|
||||
|
|
|
|||
|
|
@ -26,10 +26,6 @@
|
|||
|
||||
#include "nm-core-internal.h"
|
||||
|
||||
#define NM_PROXY_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_PROXY_CONFIG, NMProxyConfigPrivate))
|
||||
|
||||
G_DEFINE_TYPE (NMProxyConfig, nm_proxy_config, G_TYPE_OBJECT)
|
||||
|
||||
typedef struct {
|
||||
NMProxyConfigMethod method;
|
||||
GPtrArray *proxies;
|
||||
|
|
@ -39,6 +35,32 @@ typedef struct {
|
|||
char *pac_script;
|
||||
} NMProxyConfigPrivate;
|
||||
|
||||
struct _NMProxyConfig {
|
||||
GObject parent;
|
||||
NMProxyConfigPrivate _priv;
|
||||
};
|
||||
|
||||
struct _NMProxyConfigClass {
|
||||
GObjectClass parent;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (NMProxyConfig, nm_proxy_config, G_TYPE_OBJECT)
|
||||
|
||||
#define NM_PROXY_CONFIG_GET_PRIVATE(self) \
|
||||
({ \
|
||||
/* preserve the const-ness of self. Unfortunately, that
|
||||
* way, @self cannot be a void pointer */ \
|
||||
typeof (self) _self = (self); \
|
||||
\
|
||||
/* Get compiler error if variable is of wrong type */ \
|
||||
_nm_unused const NMProxyConfig *_self2 = (_self); \
|
||||
\
|
||||
nm_assert (NM_IS_PROXY_CONFIG (_self)); \
|
||||
&_self->_priv; \
|
||||
})
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
NMProxyConfig *
|
||||
nm_proxy_config_new (void)
|
||||
{
|
||||
|
|
@ -56,7 +78,7 @@ nm_proxy_config_set_method (NMProxyConfig *config, NMProxyConfigMethod method)
|
|||
NMProxyConfigMethod
|
||||
nm_proxy_config_get_method (const NMProxyConfig *config)
|
||||
{
|
||||
NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
const NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
|
||||
return priv->method;
|
||||
}
|
||||
|
|
@ -153,7 +175,7 @@ nm_proxy_config_merge_setting (NMProxyConfig *config, NMSettingProxy *setting)
|
|||
char **
|
||||
nm_proxy_config_get_proxies (const NMProxyConfig *config)
|
||||
{
|
||||
NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
const NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
|
||||
return _nm_utils_ptrarray_to_strv (priv->proxies);
|
||||
}
|
||||
|
|
@ -161,7 +183,7 @@ nm_proxy_config_get_proxies (const NMProxyConfig *config)
|
|||
char **
|
||||
nm_proxy_config_get_excludes (const NMProxyConfig *config)
|
||||
{
|
||||
NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
const NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
|
||||
return _nm_utils_ptrarray_to_strv (priv->excludes);
|
||||
}
|
||||
|
|
@ -169,7 +191,7 @@ nm_proxy_config_get_excludes (const NMProxyConfig *config)
|
|||
gboolean
|
||||
nm_proxy_config_get_browser_only (const NMProxyConfig *config)
|
||||
{
|
||||
NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
const NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
|
||||
return priv->browser_only;
|
||||
}
|
||||
|
|
@ -186,7 +208,7 @@ nm_proxy_config_set_pac_url (NMProxyConfig *config, const char *url)
|
|||
const char *
|
||||
nm_proxy_config_get_pac_url (const NMProxyConfig *config)
|
||||
{
|
||||
NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
const NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
|
||||
return priv->pac_url;
|
||||
}
|
||||
|
|
@ -203,7 +225,7 @@ nm_proxy_config_set_pac_script (NMProxyConfig *config, const char *script)
|
|||
const char *
|
||||
nm_proxy_config_get_pac_script (const NMProxyConfig *config)
|
||||
{
|
||||
NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
const NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE (config);
|
||||
|
||||
return priv->pac_script;
|
||||
}
|
||||
|
|
@ -239,7 +261,5 @@ nm_proxy_config_class_init (NMProxyConfigClass *klass)
|
|||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (object_class, sizeof (NMProxyConfigPrivate));
|
||||
|
||||
object_class->finalize = finalize;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,13 +36,7 @@ typedef enum {
|
|||
#define NM_IS_PROXY_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_PROXY_CONFIG))
|
||||
#define NM_PROXY_CONFIG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_PROXY_CONFIG, NMProxyConfigClass))
|
||||
|
||||
struct _NMProxyConfig {
|
||||
GObject parent;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
GObjectClass parent;
|
||||
} NMProxyConfigClass;
|
||||
typedef struct _NMProxyConfigClass NMProxyConfigClass;
|
||||
|
||||
GType nm_proxy_config_get_type (void);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue