19#include "QtCore/qlibrary.h"
21#include "QtCore/private/qplugin_p.h"
22#include "QtCore/qloggingcategory.h"
23#include "QtCore/qmutex.h"
24#include "QtCore/qplugin.h"
25#include "QtCore/qpointer.h"
26#include "QtCore/qstringlist.h"
28# include "QtCore/qt_windows.h"
43#if defined(Q_OF_MACH_O)
75 {
return QLibrary::LoadHints(loadHintsInt.loadRelaxed()); }
80 QLibrary::LoadHints loadHints = { });
86#elif defined(Q_OS_CYGWIN)
107 explicit QLibraryPrivate(
const QString &canonicalFileName,
const QString &version, QLibrary::LoadHints loadHints);
109 void mergeLoadHints(QLibrary::LoadHints loadHints);
113 QFunctionPointer resolve_sys(
const char *);
115 QAtomicInt loadHintsInt;
118 QAtomicInt libraryRefCount;
120 QAtomicInt libraryUnloadCount;
122 enum { IsAPlugin, IsNotAPlugin, MightBeAPlugin } pluginState;
bool unload(UnloadFlag flag=UnloadSys)
QString qualifiedFileName
QtPluginInstanceFunction loadPlugin()
QAtomicPointer< std::remove_pointer< Handle >::type > pHnd
static constexpr QStringView prefix_sys()
static QStringList suffixes_sys(const QString &fullVersion)
void setLoadHints(QLibrary::LoadHints lh)
const QString fullVersion
QAtomicPointer< std::remove_pointer< QtPluginInstanceFunction >::type > instanceFactory
QPluginParsedMetaData metaData
QFunctionPointer resolve(const char *)
std::unique_ptr< QLibraryPrivate, Deleter > UniquePtr
QObject * pluginInstance()
static QLibraryPrivate * findOrCreate(const QString &fileName, const QString &version=QString(), QLibrary::LoadHints loadHints={ })
QLibrary::LoadHints loadHints() const
static QT_WARNING_PUSH const WORD ExpectedMachine
static QLatin1StringView findSectionName(const IMAGE_SECTION_HEADER *section, QByteArrayView stringTable)
static constexpr auto metadataSectionName() noexcept
static constexpr bool IncludeValidityChecks
static std::optional< QByteArrayView > findStringTable(QByteArrayView data, const IMAGE_NT_HEADERS *ntHeader, const ErrorMaker &error)
static constexpr QLatin1StringView truncatedSectionName
static const WORD ExpectedOptionalHeaderSignature
static const IMAGE_SECTION_HEADER * findSectionTable(QByteArrayView data, const IMAGE_NT_HEADERS *ntHeader, const ErrorMaker &error)
QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(lcEventDispatcher)
QT_REQUIRE_CONFIG(library)
void operator()(QLibraryPrivate *p) const