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
qqmltypeloader.cpp File Reference

(046d7ab7bf9dca1cda125109f51eca44e7aa7a23)

#include <private/qqmltypeloader_p.h>
#include <private/qqmldirdata_p.h>
#include <private/qqmlprofiler_p.h>
#include <private/qqmlscriptblob_p.h>
#include <private/qqmlscriptdata_p.h>
#include <private/qqmlsourcecoordinate_p.h>
#include <private/qqmltypedata_p.h>
#include <private/qqmltypeloaderqmldircontent_p.h>
#include <private/qqmltypeloaderthread_p.h>
#include <private/qv4compiler_p.h>
#include <private/qv4compilercontext_p.h>
#include <private/qv4runtimecodegen_p.h>
#include <QtQml/qqmlabstracturlinterceptor.h>
#include <QtQml/qqmlengine.h>
#include <QtQml/qqmlextensioninterface.h>
#include <QtQml/qqmlfile.h>
#include <QtQml/qqmlnetworkaccessmanagerfactory.h>
#include <qtqml_tracepoints_p.h>
#include <QtCore/qdir.h>
#include <QtCore/qdirlisting.h>
#include <QtCore/qfile.h>
#include <QtCore/qlibraryinfo.h>
#include <QtCore/qthread.h>
#include <functional>
Include dependency graph for qqmltypeloader.cpp:

Go to the source code of this file.

Classes

struct  PlainLoader
struct  StaticLoader
struct  CachedLoader

Macros

#define ASSERT_LOADTHREAD()
#define ASSERT_ENGINETHREAD()
#define DATALOADER_MAXIMUM_REDIRECT_RECURSION   16
#define ERROR(description)
#define NOT_READABLE_ERROR   QString(QLatin1String("module \"$$URI$$\" definition \"%1\" not readable"))
#define NOT_FOUND_ERROR   QString(QLatin1String("cannot load module \"$$URI$$\": File \"%1\" not found"))

Enumerations

enum class  FileSetPopulateResult {
  NotFound , Found , Overflow , NotFound ,
  Found , Overflow
}
enum class  FileSetPopulateResult {
  NotFound , Found , Overflow , NotFound ,
  Found , Overflow
}

Functions

static QUrl doInterceptUrl (const QUrl &url, QQmlAbstractUrlInterceptor::DataType type, const QList< QQmlAbstractUrlInterceptor * > &urlInterceptors)
template<class Interface>
void doInitializeEngine (Interface *iface, QQmlTypeLoaderThread *thread, QQmlTypeLoaderLockedData *data, const char *uri)
static bool isPathAbsolute (const QString &path)
static void initializeConfiguredData (const QQmlTypeLoaderConfiguredDataPtr &data, QV4::ExecutionEngine *engine)
template<typename URL>
void postProcessQmldir (QQmlTypeLoader::Blob *self, const QQmlTypeLoader::Blob::PendingImportPtr &import, const QString &qmldirFilePath, const URL &qmldirUrl)
static void addDependencyImportError (const QQmlTypeLoader::Blob::PendingImportPtr &import, QList< QQmlError > *errors)
static QQmlTypeLoaderConfiguredDataConstPtr configuredData (QQmlTypeLoaderLockedData *m_data)
static QStringList parseEnvPath (const QString &envImportPath)
template<typename Blob>
QQmlRefPointer< BlobhandleExisting (const QQmlTypeLoaderSharedDataPtr &data, QQmlRefPointer< Blob > &&blob, QQmlTypeLoader::Mode mode)
static bool isModuleUrl (const QUrl &url)
static constexpr QDirListing::IteratorFlags dirListingFlags ()
static FileSetPopulateResult populateFileSet (QCache< QString, bool > *fileSet, const QString &path, const QString &file)
static QString stripTrailingSlashes (const QString &path)
template<typename Blob>
void clearBlobs (QHash< QUrl, QQmlRefPointer< Blob > > *blobs)

Macro Definition Documentation

◆ ASSERT_ENGINETHREAD

#define ASSERT_ENGINETHREAD ( )
Value:
Q_ASSERT(!engine()->jsEngine() || engine()->jsEngine()->thread()->isCurrentThread())
#define Q_ASSERT(cond)
Definition qrandom.cpp:48
QJSEngine engine
[0]

Definition at line 40 of file qqmltypeloader.cpp.

◆ ASSERT_LOADTHREAD

#define ASSERT_LOADTHREAD ( )
Value:
Q_ASSERT(thread() && thread()->isThisThread())

Definition at line 38 of file qqmltypeloader.cpp.

◆ DATALOADER_MAXIMUM_REDIRECT_RECURSION

#define DATALOADER_MAXIMUM_REDIRECT_RECURSION   16

Definition at line 345 of file qqmltypeloader.cpp.

◆ ERROR

#define ERROR ( description)
Value:
{ QQmlError e; e.setDescription(description); qmldir->setError(e); }
The QQmlError class encapsulates a QML error.
Definition qqmlerror.h:18
void setDescription(const QString &)
Sets the error description.

◆ NOT_FOUND_ERROR

#define NOT_FOUND_ERROR   QString(QLatin1String("cannot load module \"$$URI$$\": File \"%1\" not found"))

◆ NOT_READABLE_ERROR

#define NOT_READABLE_ERROR   QString(QLatin1String("module \"$$URI$$\" definition \"%1\" not readable"))

Enumeration Type Documentation

◆ FileSetPopulateResult [1/2]

enum class FileSetPopulateResult
strong
Enumerator
NotFound 
Found 
Overflow 
NotFound 
Found 
Overflow 

Definition at line 1546 of file qqmltypeloader.cpp.

◆ FileSetPopulateResult [2/2]

enum class FileSetPopulateResult
strong
Enumerator
NotFound 
Found 
Overflow 
NotFound 
Found 
Overflow 

Definition at line 1546 of file qqmltypeloader.cpp.

Function Documentation

◆ addDependencyImportError()

void addDependencyImportError ( const QQmlTypeLoader::Blob::PendingImportPtr & import,
QList< QQmlError > * errors )
static

Definition at line 789 of file qqmltypeloader.cpp.

◆ clearBlobs()

template<typename Blob>
void clearBlobs ( QHash< QUrl, QQmlRefPointer< Blob > > * blobs)

Definition at line 1797 of file qqmltypeloader.cpp.

◆ configuredData()

Definition at line 1148 of file qqmltypeloader.cpp.

◆ dirListingFlags()

constexpr QDirListing::IteratorFlags dirListingFlags ( )
staticconstexpr

Definition at line 1541 of file qqmltypeloader.cpp.

◆ doInitializeEngine()

template<class Interface>
void doInitializeEngine ( Interface * iface,
QQmlTypeLoaderThread * thread,
QQmlTypeLoaderLockedData * data,
const char * uri )

Call the initializeEngine() method on iface. Used by QQmlTypeLoader to ensure it gets called in the correct thread.

Definition at line 410 of file qqmltypeloader.cpp.

◆ doInterceptUrl()

QUrl doInterceptUrl ( const QUrl & url,
QQmlAbstractUrlInterceptor::DataType type,
const QList< QQmlAbstractUrlInterceptor * > & urlInterceptors )
static

Definition at line 114 of file qqmltypeloader.cpp.

◆ handleExisting()

template<typename Blob>
QQmlRefPointer< Blob > handleExisting ( const QQmlTypeLoaderSharedDataPtr & data,
QQmlRefPointer< Blob > && blob,
QQmlTypeLoader::Mode mode )

Definition at line 1311 of file qqmltypeloader.cpp.

◆ initializeConfiguredData()

void initializeConfiguredData ( const QQmlTypeLoaderConfiguredDataPtr & data,
QV4::ExecutionEngine * engine )
static

Definition at line 663 of file qqmltypeloader.cpp.

◆ isModuleUrl()

bool isModuleUrl ( const QUrl & url)
static

Definition at line 1383 of file qqmltypeloader.cpp.

◆ isPathAbsolute()

bool isPathAbsolute ( const QString & path)
static

Definition at line 502 of file qqmltypeloader.cpp.

◆ parseEnvPath()

QStringList parseEnvPath ( const QString & envImportPath)
static

Definition at line 1190 of file qqmltypeloader.cpp.

◆ populateFileSet()

FileSetPopulateResult populateFileSet ( QCache< QString, bool > * fileSet,
const QString & path,
const QString & file )
static

Definition at line 1547 of file qqmltypeloader.cpp.

References Found, NotFound, and Overflow.

◆ postProcessQmldir()

template<typename URL>
void postProcessQmldir ( QQmlTypeLoader::Blob * self,
const QQmlTypeLoader::Blob::PendingImportPtr & import,
const QString & qmldirFilePath,
const URL & qmldirUrl )

Definition at line 766 of file qqmltypeloader.cpp.

◆ stripTrailingSlashes()

QString stripTrailingSlashes ( const QString & path)
static

Definition at line 1568 of file qqmltypeloader.cpp.