mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-04 02:30:24 +01:00
dbus: extend NM_DEFINE_GDBUS*() helper macros
This commit is contained in:
parent
70b24819a0
commit
14ffe6bc55
3 changed files with 67 additions and 28 deletions
|
|
@ -469,36 +469,89 @@ int nm_utils_fd_read_loop_exact (int fd, void *buf, size_t nbytes, bool do_poll)
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
#define NM_DEFINE_GDBUS_ARG_INFO(a_name, ...) \
|
||||
#define NM_DEFINE_GDBUS_ARG_INFO_FULL(name_, ...) \
|
||||
((GDBusArgInfo *) (&((const GDBusArgInfo) { \
|
||||
.ref_count = -1, \
|
||||
.name = a_name, \
|
||||
.name = name_, \
|
||||
__VA_ARGS__ \
|
||||
})))
|
||||
|
||||
#define NM_DEFINE_GDBUS_ARG_INFO(name_, a_signature) \
|
||||
NM_DEFINE_GDBUS_ARG_INFO_FULL ( \
|
||||
name_, \
|
||||
.signature = a_signature, \
|
||||
)
|
||||
|
||||
#define NM_DEFINE_GDBUS_ARG_INFOS(...) \
|
||||
((GDBusArgInfo **) ((const GDBusArgInfo *[]) { \
|
||||
__VA_ARGS__ \
|
||||
NULL, \
|
||||
}))
|
||||
|
||||
#define NM_DEFINE_GDBUS_METHOD_INFO(m_name, ...) \
|
||||
((GDBusMethodInfo *) (&((const GDBusMethodInfo) { \
|
||||
#define NM_DEFINE_GDBUS_PROPERTY_INFO(name_, ...) \
|
||||
((GDBusPropertyInfo *) (&((const GDBusPropertyInfo) { \
|
||||
.ref_count = -1, \
|
||||
.name = m_name, \
|
||||
.name = name_, \
|
||||
__VA_ARGS__ \
|
||||
})))
|
||||
|
||||
#define NM_DEFINE_GDBUS_PROPERTY_INFO_READABLE(name_, m_signature) \
|
||||
NM_DEFINE_GDBUS_PROPERTY_INFO ( \
|
||||
name_, \
|
||||
.signature = m_signature, \
|
||||
.flags = G_DBUS_PROPERTY_INFO_FLAGS_READABLE, \
|
||||
)
|
||||
|
||||
#define NM_DEFINE_GDBUS_PROPERTY_INFOS(...) \
|
||||
((GDBusPropertyInfo **) ((const GDBusPropertyInfo *[]) { \
|
||||
__VA_ARGS__ \
|
||||
NULL, \
|
||||
}))
|
||||
|
||||
#define NM_DEFINE_GDBUS_SIGNAL_INFO_INIT(name_, ...) \
|
||||
{ \
|
||||
.ref_count = -1, \
|
||||
.name = name_, \
|
||||
__VA_ARGS__ \
|
||||
}
|
||||
|
||||
#define NM_DEFINE_GDBUS_SIGNAL_INFO(name_, ...) \
|
||||
((GDBusSignalInfo *) (&((const GDBusSignalInfo) NM_DEFINE_GDBUS_SIGNAL_INFO_INIT (name_, __VA_ARGS__))))
|
||||
|
||||
#define NM_DEFINE_GDBUS_SIGNAL_INFOS(...) \
|
||||
((GDBusSignalInfo **) ((const GDBusSignalInfo *[]) { \
|
||||
__VA_ARGS__ \
|
||||
NULL, \
|
||||
}))
|
||||
|
||||
#define NM_DEFINE_GDBUS_METHOD_INFO_INIT(name_, ...) \
|
||||
{ \
|
||||
.ref_count = -1, \
|
||||
.name = name_, \
|
||||
__VA_ARGS__ \
|
||||
}
|
||||
|
||||
#define NM_DEFINE_GDBUS_METHOD_INFO(name_, ...) \
|
||||
((GDBusMethodInfo *) (&((const GDBusMethodInfo) NM_DEFINE_GDBUS_METHOD_INFO_INIT (name_, __VA_ARGS__))))
|
||||
|
||||
#define NM_DEFINE_GDBUS_METHOD_INFOS(...) \
|
||||
((GDBusMethodInfo **) ((const GDBusMethodInfo *[]) { \
|
||||
__VA_ARGS__ \
|
||||
NULL, \
|
||||
}))
|
||||
|
||||
#define NM_DEFINE_GDBUS_INTERFACE_INFO(variable, i_name, ...) \
|
||||
static GDBusInterfaceInfo *const variable = ((GDBusInterfaceInfo *) (&((const GDBusInterfaceInfo) { \
|
||||
#define NM_DEFINE_GDBUS_INTERFACE_INFO_INIT(name_, ...) \
|
||||
{ \
|
||||
.ref_count = -1, \
|
||||
.name = i_name, \
|
||||
.name = name_, \
|
||||
__VA_ARGS__ \
|
||||
}
|
||||
|
||||
#define NM_DEFINE_GDBUS_INTERFACE_INFO(name_, ...) \
|
||||
((GDBusInterfaceInfo *) (&((const GDBusInterfaceInfo) NM_DEFINE_GDBUS_INTERFACE_INFO_INIT (name_, __VA_ARGS__))))
|
||||
|
||||
#define NM_DEFINE_GDBUS_INTERFACE_VTABLE(...) \
|
||||
((GDBusInterfaceVTable *) (&((const GDBusInterfaceVTable) { \
|
||||
__VA_ARGS__ \
|
||||
})))
|
||||
|
||||
|
|
|
|||
|
|
@ -204,17 +204,13 @@ _method_call (GDBusConnection *connection,
|
|||
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||
}
|
||||
|
||||
NM_DEFINE_GDBUS_INTERFACE_INFO (
|
||||
interface_info,
|
||||
static GDBusInterfaceInfo *const interface_info = NM_DEFINE_GDBUS_INTERFACE_INFO (
|
||||
NM_DHCP_HELPER_SERVER_INTERFACE_NAME,
|
||||
.methods = NM_DEFINE_GDBUS_METHOD_INFOS (
|
||||
NM_DEFINE_GDBUS_METHOD_INFO (
|
||||
NM_DHCP_HELPER_SERVER_METHOD_NOTIFY,
|
||||
.in_args = NM_DEFINE_GDBUS_ARG_INFOS (
|
||||
NM_DEFINE_GDBUS_ARG_INFO (
|
||||
"data",
|
||||
.signature = "a{sv}",
|
||||
),
|
||||
NM_DEFINE_GDBUS_ARG_INFO ("data", "a{sv}"),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -821,27 +821,17 @@ _method_call (GDBusConnection *connection,
|
|||
g_return_if_reached ();
|
||||
}
|
||||
|
||||
NM_DEFINE_GDBUS_INTERFACE_INFO (
|
||||
interface_info,
|
||||
static GDBusInterfaceInfo *const interface_info = NM_DEFINE_GDBUS_INTERFACE_INFO (
|
||||
IFCFGRH1_BUS_NAME,
|
||||
.methods = NM_DEFINE_GDBUS_METHOD_INFOS (
|
||||
NM_DEFINE_GDBUS_METHOD_INFO (
|
||||
IFCFGRH1_IFACE1_METHOD_GET_IFCFG_DETAILS,
|
||||
.in_args = NM_DEFINE_GDBUS_ARG_INFOS (
|
||||
NM_DEFINE_GDBUS_ARG_INFO (
|
||||
"ifcfg",
|
||||
.signature = "s",
|
||||
),
|
||||
NM_DEFINE_GDBUS_ARG_INFO ("ifcfg", "s"),
|
||||
),
|
||||
.out_args = NM_DEFINE_GDBUS_ARG_INFOS (
|
||||
NM_DEFINE_GDBUS_ARG_INFO (
|
||||
"uuid",
|
||||
.signature = "s",
|
||||
),
|
||||
NM_DEFINE_GDBUS_ARG_INFO (
|
||||
"path",
|
||||
.signature = "o",
|
||||
),
|
||||
NM_DEFINE_GDBUS_ARG_INFO ("uuid", "s"),
|
||||
NM_DEFINE_GDBUS_ARG_INFO ("path", "o"),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue