diff options
Diffstat (limited to 'src/dbus/qdbusmetatype_p.h')
-rw-r--r-- | src/dbus/qdbusmetatype_p.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/dbus/qdbusmetatype_p.h b/src/dbus/qdbusmetatype_p.h index 1aa11552df..1f7e61318a 100644 --- a/src/dbus/qdbusmetatype_p.h +++ b/src/dbus/qdbusmetatype_p.h @@ -1,6 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2016 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtDBus module of the Qt Toolkit. @@ -60,10 +61,27 @@ #include <qdbuserror.h> #include <qdbusunixfiledescriptor.h> +#include <qbytearray.h> +#include <qreadwritelock.h> +#include <qvector.h> + #ifndef QT_NO_DBUS QT_BEGIN_NAMESPACE +class QDBusCustomTypeInfo +{ +public: + QDBusCustomTypeInfo() : signature(), marshall(0), demarshall(0) + { } + + // Suggestion: + // change 'signature' to char* and make QDBusCustomTypeInfo a Movable type + QByteArray signature; + QDBusMetaType::MarshallFunction marshall; + QDBusMetaType::DemarshallFunction demarshall; +}; + struct QDBusMetaTypeId { static int message(); // QDBusMessage @@ -74,7 +92,14 @@ struct QDBusMetaTypeId static int error(); // QDBusError static int unixfd(); // QDBusUnixFileDescriptor - static void init(); + static void init() { instance(); } + static QDBusMetaTypeId *instance(); + + mutable QReadWriteLock customTypesLock; + QVector<QDBusCustomTypeInfo> customTypes; + +protected: + QDBusMetaTypeId(); }; inline int QDBusMetaTypeId::message() |