Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qdbusmetatype.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QDBUSMETATYPE_H
6#define QDBUSMETATYPE_H
7
8#include <QtDBus/qtdbusglobal.h>
9#include <QtDBus/qdbusargument.h>
10
11#include <QtCore/qmetatype.h>
12
13#ifndef QT_NO_DBUS
14
16
17
18class Q_DBUS_EXPORT QDBusMetaType
19{
20public:
21 typedef void (*MarshallFunction)(QDBusArgument &, const void *);
22 typedef void (*DemarshallFunction)(const QDBusArgument &, void *);
23
24 static void registerMarshallOperators(QMetaType typeId, MarshallFunction, DemarshallFunction);
25 static bool marshall(QDBusArgument &, QMetaType id, const void *data);
26 static bool demarshall(const QDBusArgument &, QMetaType id, void *data);
27
28 static void registerCustomType(QMetaType type, const QByteArray &signature);
29
30 static QMetaType signatureToMetaType(const char *signature);
31 static const char *typeToSignature(QMetaType type);
32};
33
34template<typename T>
36{
37 auto mf = [](QDBusArgument &arg, const void *t) { arg << *static_cast<const T *>(t); };
38 auto df = [](const QDBusArgument &arg, void *t) { arg >> *static_cast<T *>(t); };
39
40 QMetaType metaType = QMetaType::fromType<T>();
41 QDBusMetaType::registerMarshallOperators(metaType, mf, df);
42 return metaType;
43}
44
45QT_END_NAMESPACE
46
47#endif // QT_NO_DBUS
48#endif
static void saveIntrospectionXml(QDBusAbstractAdaptor *adaptor, const QString &xml)
static QString retrieveIntrospectionXml(QDBusAbstractAdaptor *adaptor)
void relay(QObject *sender, int id, void **)
void addAdaptor(QDBusAbstractAdaptor *adaptor)
void disconnectAllSignals(QObject *object)
QList< AdaptorData > AdaptorMap
QDBusAdaptorConnector(QObject *parent)
void connectAllSignals(QObject *object)
\inmodule QtDBus
\inmodule QtDBus
Definition qdbuserror.h:22
\inmodule QtDBus
\inmodule QtDBus
The QDBusServiceWatcher class allows the user to watch for a bus service change.
Q_DBUS_EXPORT void init()
QMetaType unixfd()
QMetaType variant()
QMetaType error()
QMetaType argument()
QMetaType objectpath()
QMetaType message()
QMetaType signature()
CallMode
This enum describes the various ways of placing a function call.
QDBusAdaptorConnector * qDBusFindAdaptorConnector(QDBusAbstractAdaptor *adaptor)
QDBusAdaptorConnector * qDBusCreateAdaptorConnector(QObject *obj)
QDBusAdaptorConnector * qDBusFindAdaptorConnector(QObject *obj)
QDBusAdaptorConnector * qDBusCreateAdaptorConnector(QObject *object)
#define QCLASSINFO_DBUS_INTERFACE
QDBusAdaptorConnector * qDBusFindAdaptorConnector(QObject *object)
bool qDBusInterfaceInObject(QObject *obj, const QString &interface_name)
Q_DBUS_EXPORT int qDBusParametersForMethod(const QList< QByteArray > &parameters, QList< QMetaType > &metaTypes, QString &errorMsg)
QString qDBusIntrospectObject(const QDBusConnectionPrivate::ObjectTreeNode &node, const QString &path)
QString qDBusInterfaceFromMetaObject(const QMetaObject *mo)
Definition qdbusmisc.cpp:43
Q_DBUS_EXPORT bool qDBusCheckAsyncTag(const char *tag)
Definition qdbusmisc.cpp:26
QDBusMessage qDBusPropertyGetAll(const QDBusConnectionPrivate::ObjectTreeNode &node, const QDBusMessage &msg)
QDBusMessage qDBusPropertyGet(const QDBusConnectionPrivate::ObjectTreeNode &node, const QDBusMessage &msg)
int qDBusParametersForMethod(const QMetaMethod &mm, QList< QMetaType > &metaTypes, QString &errorMsg)
QDBusMessage qDBusPropertySet(const QDBusConnectionPrivate::ObjectTreeNode &node, const QDBusMessage &msg)
QMetaType qDBusRegisterMetaType()
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
Definition qdir.cpp:2568
Q_DECLARE_TYPEINFO(QObjectPrivate::ConnectionList, Q_RELOCATABLE_TYPE)