5#ifndef QQMLTYPEMODULE_P_H
6#define QQMLTYPEMODULE_P_H
19#include <QtQml/qtqmlglobal.h>
20#include <QtQml/private/qstringhash_p.h>
21#include <QtQml/private/qqmltype_p.h>
22#include <QtCore/qmutex.h>
23#include <QtCore/qstring.h>
24#include <QtCore/qversionnumber.h>
52 void add(QQmlTypePrivate *);
53 void remove(
const QQmlTypePrivate *type);
59 const int currentLock = m_lockLevel.loadAcquire();
60 if (currentLock >
int(mode))
62 if (currentLock ==
int(mode) || m_lockLevel.testAndSetRelease(currentLock,
int(mode)))
76 return m_majorVersion;
83 QQmlType
type(
const QHashedStringRef &name, QTypeRevision version)
const
85 QMutexLocker lock(&m_mutex);
86 return findType(m_typeHash.value(name), version);
89 QQmlType
type(
const QV4::String *name, QTypeRevision version)
const
91 QMutexLocker lock(&m_mutex);
92 return findType(m_typeHash.value(name), version);
98 static Q_QML_EXPORT QQmlType
findType(
101 const QString m_module;
102 const quint8 m_majorVersion = 0;
108 QAtomicInt m_maxMinorVersion = 0;
116 mutable QMutex m_mutex;
bool setLockLevel(LockLevel mode)
LockLevel lockLevel() const
quint8 majorVersion() const
QQmlType type(const QV4::String *name, QTypeRevision version) const
void walkCompositeSingletons(const std::function< void(const QQmlType &)> &callback) const
void remove(const QQmlTypePrivate *type)
QQmlTypeModule(const QString &uri, quint8 majorVersion)
quint8 minimumMinorVersion() const
quint8 maximumMinorVersion() const
QQmlType type(const QHashedStringRef &name, QTypeRevision version) const
void addMinorVersion(quint8 minorVersion)
void add(QQmlTypePrivate *)
Combined button and popup list for selecting options.