about summary refs log tree commit diff
path: root/src/nm-dbus-object.h
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2021-02-11 18:11:46 +0100
committerMichael Biebl <biebl@debian.org>2021-02-11 18:11:46 +0100
commit80ec1decc49c72efec2a8b87c06245c92c0ab807 (patch)
treee3b229aa94e8dcf0590f2317664176e7b8f7607b /src/nm-dbus-object.h
parent65f86e8f56267192d42f2b629fc6b0c99fb9cd0c (diff)
New upstream version 1.29.90 upstream/1.29.90
Diffstat (limited to 'src/nm-dbus-object.h')
-rw-r--r--src/nm-dbus-object.h184
1 files changed, 0 insertions, 184 deletions
diff --git a/src/nm-dbus-object.h b/src/nm-dbus-object.h
deleted file mode 100644
index e7deef53..00000000
--- a/src/nm-dbus-object.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Copyright (C) 2018 Red Hat, Inc.
- */
-
-#ifndef __NM_DBUS_OBJECT_H__
-#define __NM_DBUS_OBJECT_H__
-
-/*****************************************************************************/
-
-#include "c-list/src/c-list.h"
-#include "nm-dbus-utils.h"
-
-/*****************************************************************************/
-
-typedef struct {
-    const char *path;
-
-    /* if path is of type NM_DBUS_EXPORT_PATH_NUMBERED(), we need a
-     * per-class counter when generating a new numbered path.
-     *
-     * Each NMDBusObjectClass instance has a shallow clone of the NMDBusObjectClass parent
-     * instance in every derived type. Hence we cannot embed the counter there directly,
-     * because it must be shared, e.g. between NMDeviceBond and NMDeviceEthernet.
-     * Make int_counter a pointer to the actual counter that is used by ever sibling
-     * class. */
-    long long unsigned *int_counter;
-} NMDBusExportPath;
-
-#define NM_DBUS_EXPORT_PATH_STATIC(basepath) \
-    ({                                       \
-        ((NMDBusExportPath){                 \
-            .path = "" basepath "",          \
-        });                                  \
-    })
-
-#define NM_DBUS_EXPORT_PATH_NUMBERED(basepath)      \
-    ({                                              \
-        static long long unsigned _int_counter = 0; \
-        ((NMDBusExportPath){                        \
-            .path        = "" basepath "/%llu",     \
-            .int_counter = &_int_counter,           \
-        });                                         \
-    })
-
-/*****************************************************************************/
-
-/* "org.freedesktop.NetworkManager.Device.Statistics" is a special interface,
- * because although it has a legacy PropertiesChanged signal, it only notifies
- * about properties that actually exist on that interface. That is, because it
- * was added with 1.4.0 release, and thus didn't have the broken behavior like
- * other legacy interfaces. Those notify about *all* properties, even if they
- * are not part of that D-Bus interface. See also "include_in_legacy_property_changed"
- * and "legacy_property_changed". */
-extern const NMDBusInterfaceInfoExtended nm_interface_info_device_statistics;
-
-/*****************************************************************************/
-
-#define NM_TYPE_DBUS_OBJECT (nm_dbus_object_get_type())
-#define NM_DBUS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_DBUS_OBJECT, NMDBusObject))
-#define NM_DBUS_OBJECT_CLASS(klass) \
-    (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_DBUS_OBJECT, NMDBusObjectClass))
-#define NM_IS_DBUS_OBJECT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_DBUS_OBJECT))
-#define NM_IS_DBUS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_DBUS_OBJECT))
-#define NM_DBUS_OBJECT_GET_CLASS(obj) \
-    (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_DBUS_OBJECT, NMDBusObjectClass))
-
-#define NM_DBUS_OBJECT_EXPORTED_CHANGED "exported-changed"
-
-/* NMDBusObject and NMDBusManager cooperate strongly. Hence, there is an
- * internal data structure attached to the NMDBusObject accessible to both of them. */
-struct _NMDBusObjectInternal {
-    char *         path;
-    NMDBusManager *bus_manager;
-    CList          objects_lst;
-    CList          registration_lst_head;
-
-    /* we perform asynchronous operation on exported objects. For example, we receive
-     * a Set property call, and asynchronously validate the operation. We must make
-     * sure that when the authentication is complete, that we are still looking at
-     * the same (exported) object. In the meantime, the object could have been
-     * unexported, or even re-exported afterwards. If that happens, we want
-     * to fail the request. For that, we keep track of a version id.  */
-    guint64 export_version_id;
-    bool    is_unexporting : 1;
-};
-
-struct _NMDBusObject {
-    GObject                      parent;
-    struct _NMDBusObjectInternal internal;
-};
-
-#define NM_DEFINE_DBUS_INTERFACE_INFO(...) \
-    ((NMDBusInterfaceInfo *) (&((const NMDBusInterfaceInfo){__VA_ARGS__})))
-
-typedef struct {
-    GObjectClass parent;
-
-    NMDBusExportPath export_path;
-
-    const NMDBusInterfaceInfoExtended *const *interface_infos;
-
-    bool export_on_construction;
-} NMDBusObjectClass;
-
-GType nm_dbus_object_get_type(void);
-
-static inline NMDBusManager *
-nm_dbus_object_get_manager(NMDBusObject *obj)
-{
-    nm_assert(NM_IS_DBUS_OBJECT(obj));
-
-    return obj->internal.bus_manager;
-}
-
-static inline guint64
-nm_dbus_object_get_export_version_id(NMDBusObject *obj)
-{
-    nm_assert(NM_IS_DBUS_OBJECT(obj));
-
-    return obj->internal.export_version_id;
-}
-
-/**
- * nm_dbus_object_get_path:
- * @self: an #NMDBusObject
- *
- * Gets @self's D-Bus path.
- *
- * Returns: @self's D-Bus path, or %NULL if @self is not exported.
- */
-static inline const char *
-nm_dbus_object_get_path(NMDBusObject *self)
-{
-    g_return_val_if_fail(NM_IS_DBUS_OBJECT(self), NULL);
-
-    return self->internal.path;
-}
-
-/**
- * nm_dbus_object_is_exported:
- * @self: an #NMDBusObject
- *
- * Checks if @self is exported
- *
- * Returns: %TRUE if @self is exported
- */
-static inline gboolean
-nm_dbus_object_is_exported(NMDBusObject *self)
-{
-    return !!nm_dbus_object_get_path(self);
-}
-
-static inline const char *
-nm_dbus_object_get_path_still_exported(NMDBusObject *self)
-{
-    g_return_val_if_fail(NM_IS_DBUS_OBJECT(self), NULL);
-
-    /* like nm_dbus_object_get_path(), however, while unexporting
-     * (exported-changed signal), returns %NULL instead of the path. */
-    return self->internal.is_unexporting ? NULL : self->internal.path;
-}
-
-const char *nm_dbus_object_export(gpointer /* (NMDBusObject *) */ self);
-void        nm_dbus_object_unexport(gpointer /* (NMDBusObject *) */ self);
-
-void nm_dbus_object_unexport_on_idle(gpointer /* (NMDBusObject *) */ self_take);
-
-void _nm_dbus_object_clear_and_unexport(NMDBusObject **location);
-#define nm_dbus_object_clear_and_unexport(location) \
-    _nm_dbus_object_clear_and_unexport((NMDBusObject **) (location))
-
-void nm_dbus_object_emit_signal_variant(NMDBusObject *                     self,
-                                        const NMDBusInterfaceInfoExtended *interface_info,
-                                        const GDBusSignalInfo *            signal_info,
-                                        GVariant *                         args);
-
-void nm_dbus_object_emit_signal(NMDBusObject *                     self,
-                                const NMDBusInterfaceInfoExtended *interface_info,
-                                const GDBusSignalInfo *            signal_info,
-                                const char *                       format,
-                                ...);
-
-#endif /* __NM_DBUS_OBJECT_H__ */