Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQmlPropertyCacheCreator< ObjectContainer > Class Template Reference

#include <qqmlpropertycachecreator_p.h>

+ Inheritance diagram for QQmlPropertyCacheCreator< ObjectContainer >:
+ Collaboration diagram for QQmlPropertyCacheCreator< ObjectContainer >:

Public Types

enum class  VMEMetaObjectIsRequired { Maybe , Always }
 
using CompiledObject = typename ObjectContainer::CompiledObject
 
using InlineComponent = typename std::remove_reference<decltype (*(std::declval<CompiledObject>().inlineComponentsBegin()))>::type
 

Public Member Functions

 QQmlPropertyCacheCreator (QQmlPropertyCacheVector *propertyCaches, QQmlPendingGroupPropertyBindings *pendingGroupPropertyBindings, QQmlEnginePrivate *enginePrivate, const ObjectContainer *objectContainer, const QQmlImports *imports, const QByteArray &typeClassName)
 
 ~QQmlPropertyCacheCreator ()
 
IncrementalResult buildMetaObjectsIncrementally ()
 
QQmlError verifyNoICCycle ()
 

Protected Member Functions

QQmlError buildMetaObjectRecursively (int objectIndex, const QQmlBindingInstantiationContext &context, VMEMetaObjectIsRequired isVMERequired)
 
QQmlPropertyCache::ConstPtr propertyCacheForObject (const CompiledObject *obj, const QQmlBindingInstantiationContext &context, QQmlError *error) const
 
QQmlError createMetaObject (int objectIndex, const CompiledObject *obj, const QQmlPropertyCache::ConstPtr &baseTypeCache)
 
QMetaType metaTypeForParameter (const QV4::CompiledData::ParameterType &param, QString *customTypeName=nullptr)
 
QString stringAt (int index) const
 

Protected Attributes

QQmlEnginePrivate *const enginePrivate
 
const ObjectContainer *const objectContainer
 
const QQmlImports *const imports
 
QQmlPropertyCacheVectorpropertyCaches
 
QQmlPendingGroupPropertyBindingspendingGroupPropertyBindings
 
QByteArray typeClassName
 
unsigned int currentRoot
 
QQmlBindingInstantiationContext m_context
 
std::vector< InlineComponentallICs
 
std::vector< icutils::NodenodesSorted
 
std::vector< icutils::Node >::reverse_iterator nodeIt = nodesSorted.rbegin()
 
bool hasCycle = false
 

Additional Inherited Members

- Static Public Member Functions inherited from QQmlPropertyCacheCreatorBase
static QMetaType metaTypeForPropertyType (QV4::CompiledData::CommonType type)
 
static QMetaType listTypeForPropertyType (QV4::CompiledData::CommonType type)
 
static bool canCreateClassNameTypeByUrl (const QUrl &url)
 
static QByteArray createClassNameTypeByUrl (const QUrl &url)
 
static QByteArray createClassNameForInlineComponent (const QUrl &baseUrl, const QString &name)
 
- Static Public Attributes inherited from QQmlPropertyCacheCreatorBase
static QAtomicInt Q_AUTOTEST_EXPORT classIndexCounter
 

Detailed Description

template<typename ObjectContainer>
class QQmlPropertyCacheCreator< ObjectContainer >

Definition at line 143 of file qqmlpropertycachecreator_p.h.

Member Typedef Documentation

◆ CompiledObject

template<typename ObjectContainer >
using QQmlPropertyCacheCreator< ObjectContainer >::CompiledObject = typename ObjectContainer::CompiledObject

Definition at line 146 of file qqmlpropertycachecreator_p.h.

◆ InlineComponent

template<typename ObjectContainer >
using QQmlPropertyCacheCreator< ObjectContainer >::InlineComponent = typename std::remove_reference<decltype (*(std::declval<CompiledObject>().inlineComponentsBegin()))>::type

Definition at line 147 of file qqmlpropertycachecreator_p.h.

Member Enumeration Documentation

◆ VMEMetaObjectIsRequired

template<typename ObjectContainer >
enum class QQmlPropertyCacheCreator::VMEMetaObjectIsRequired
strong
Enumerator
Maybe 
Always 

Definition at line 174 of file qqmlpropertycachecreator_p.h.

Constructor & Destructor Documentation

◆ QQmlPropertyCacheCreator()

template<typename ObjectContainer >
QQmlPropertyCacheCreator< ObjectContainer >::QQmlPropertyCacheCreator ( QQmlPropertyCacheVector * propertyCaches,
QQmlPendingGroupPropertyBindings * pendingGroupPropertyBindings,
QQmlEnginePrivate * enginePrivate,
const ObjectContainer * objectContainer,
const QQmlImports * imports,
const QByteArray & typeClassName )
inline

◆ ~QQmlPropertyCacheCreator()

template<typename ObjectContainer >
QQmlPropertyCacheCreator< ObjectContainer >::~QQmlPropertyCacheCreator ( )
inline

Definition at line 154 of file qqmlpropertycachecreator_p.h.

References QQmlPropertyCacheCreator< ObjectContainer >::propertyCaches, and QQmlPropertyCacheVector::seal().

+ Here is the call graph for this function:

Member Function Documentation

◆ buildMetaObjectRecursively()

template<typename ObjectContainer >
QQmlError QQmlPropertyCacheCreator< ObjectContainer >::buildMetaObjectRecursively ( int objectIndex,
const QQmlBindingInstantiationContext & context,
VMEMetaObjectIsRequired isVMERequired )
inlineprotected

◆ buildMetaObjectsIncrementally()

template<typename ObjectContainer >
QQmlPropertyCacheCreatorBase::IncrementalResult QQmlPropertyCacheCreator< ObjectContainer >::buildMetaObjectsIncrementally ( )
inline

Creates the property cache for the CompiledObjects of objectContainer, one (inline) root component at a time.

Note
Later compiler passes might modify those property caches. Therefore, the actual metaobjects are not created yet.

Definition at line 254 of file qqmlpropertycachecreator_p.h.

References QQmlPropertyCacheVector::at(), QQmlRefPointer< T >::isNull(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ createMetaObject()

◆ metaTypeForParameter()

template<typename ObjectContainer >
QMetaType QQmlPropertyCacheCreator< ObjectContainer >::metaTypeForParameter ( const QV4::CompiledData::ParameterType & param,
QString * customTypeName = nullptr )
inlineprotected

Definition at line 770 of file qqmlpropertycachecreator_p.h.

References QQmlType::AnyRegistrationType, QMetaType::isValid(), QQmlType::qListTypeId(), QQmlImports::resolveType(), QQmlType::typeId(), QQmlEnginePrivate::typeLoader, and typeName.

+ Here is the call graph for this function:

◆ propertyCacheForObject()

template<typename ObjectContainer >
QQmlPropertyCache::ConstPtr QQmlPropertyCacheCreator< ObjectContainer >::propertyCacheForObject ( const CompiledObject * obj,
const QQmlBindingInstantiationContext & context,
QQmlError * error ) const
inlineprotected

Definition at line 384 of file qqmlpropertycachecreator_p.h.

References context, error, QQmlTypeLoader::get(), QQmlMetaType::propertyCache(), Q_ASSERT, qQmlCompileError(), and QQmlImports::resolveType().

+ Here is the call graph for this function:

◆ stringAt()

template<typename ObjectContainer >
QString QQmlPropertyCacheCreator< ObjectContainer >::stringAt ( int index) const
inlineprotected

◆ verifyNoICCycle()

template<typename ObjectContainer >
QQmlError QQmlPropertyCacheCreator< ObjectContainer >::verifyNoICCycle ( )
inline

Returns a valid error if the inline components of the objectContainer form a cycle. Otherwise an invalid error is returned

Definition at line 242 of file qqmlpropertycachecreator_p.h.

References QQmlError::setDescription().

+ Here is the call graph for this function:

Member Data Documentation

◆ allICs

template<typename ObjectContainer >
std::vector<InlineComponent> QQmlPropertyCacheCreator< ObjectContainer >::allICs
protected

◆ currentRoot

template<typename ObjectContainer >
unsigned int QQmlPropertyCacheCreator< ObjectContainer >::currentRoot
protected

Definition at line 193 of file qqmlpropertycachecreator_p.h.

◆ enginePrivate

template<typename ObjectContainer >
QQmlEnginePrivate* const QQmlPropertyCacheCreator< ObjectContainer >::enginePrivate
protected

Definition at line 187 of file qqmlpropertycachecreator_p.h.

◆ hasCycle

template<typename ObjectContainer >
bool QQmlPropertyCacheCreator< ObjectContainer >::hasCycle = false
protected

◆ imports

template<typename ObjectContainer >
const QQmlImports* const QQmlPropertyCacheCreator< ObjectContainer >::imports
protected

Definition at line 189 of file qqmlpropertycachecreator_p.h.

◆ m_context

template<typename ObjectContainer >
QQmlBindingInstantiationContext QQmlPropertyCacheCreator< ObjectContainer >::m_context
protected

Definition at line 195 of file qqmlpropertycachecreator_p.h.

◆ nodeIt

template<typename ObjectContainer >
std::vector<icutils::Node>::reverse_iterator QQmlPropertyCacheCreator< ObjectContainer >::nodeIt = nodesSorted.rbegin()
protected

◆ nodesSorted

template<typename ObjectContainer >
std::vector<icutils::Node> QQmlPropertyCacheCreator< ObjectContainer >::nodesSorted
protected

◆ objectContainer

template<typename ObjectContainer >
const ObjectContainer* const QQmlPropertyCacheCreator< ObjectContainer >::objectContainer
protected

◆ pendingGroupPropertyBindings

template<typename ObjectContainer >
QQmlPendingGroupPropertyBindings* QQmlPropertyCacheCreator< ObjectContainer >::pendingGroupPropertyBindings
protected

Definition at line 191 of file qqmlpropertycachecreator_p.h.

◆ propertyCaches

◆ typeClassName

template<typename ObjectContainer >
QByteArray QQmlPropertyCacheCreator< ObjectContainer >::typeClassName
protected

Definition at line 192 of file qqmlpropertycachecreator_p.h.


The documentation for this class was generated from the following file: