4#ifndef QQMLTYPEMODULE_P_H
5#define QQMLTYPEMODULE_P_H
18#include <QtQml/qtqmlglobal.h>
19#include <QtQml/private/qstringhash_p.h>
20#include <QtQml/private/qqmltype_p.h>
21#include <QtCore/qmutex.h>
22#include <QtCore/qstring.h>
23#include <QtCore/qversionnumber.h>
51 void add(QQmlTypePrivate *);
52 void remove(
const QQmlTypePrivate *type);
58 const int currentLock = m_lockLevel.loadAcquire();
59 if (currentLock >
int(mode))
61 if (currentLock ==
int(mode) || m_lockLevel.testAndSetRelease(currentLock,
int(mode)))
75 return m_majorVersion;
82 QQmlType
type(
const QHashedStringRef &name, QTypeRevision version)
const
84 QMutexLocker lock(&m_mutex);
85 return findType(m_typeHash.value(name), version);
88 QQmlType
type(
const QV4::String *name, QTypeRevision version)
const
90 QMutexLocker lock(&m_mutex);
91 return findType(m_typeHash.value(name), version);
97 static Q_QML_EXPORT QQmlType
findType(
100 const QString m_module;
101 const quint8 m_majorVersion = 0;
107 QAtomicInt m_maxMinorVersion = 0;
115 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 *)