Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QTypeRevision Class Reference

\inmodule QtCore More...

#include <qversionnumber.h>

+ Collaboration diagram for QTypeRevision:

Public Types

template<typename Integer >
using if_valid_segment_type = typename std::enable_if< std::is_integral< Integer >::value, bool >::type
 
template<typename Integer >
using if_valid_value_type = typename std::enable_if< std::is_integral< Integer >::value &&(sizeof(Integer) > sizeof(quint16)||(sizeof(Integer)==sizeof(quint16) &&!std::is_signed< Integer >::value)), bool >::type
 

Public Member Functions

constexpr QTypeRevision ()=default
 Produces an invalid revision.
 
constexpr bool hasMajorVersion () const
 Returns true if the major version is known, otherwise false.
 
constexpr quint8 majorVersion () const
 Returns the major version encoded in the revision.
 
constexpr bool hasMinorVersion () const
 Returns true if the minor version is known, otherwise false.
 
constexpr quint8 minorVersion () const
 Returns the minor version encoded in the revision.
 
constexpr bool isValid () const
 Returns true if the major version or the minor version is known, otherwise false.
 
template<typename Integer , if_valid_value_type< Integer > = true>
constexpr Integer toEncodedVersion () const
 Transforms the revision into an integer value, encoding the minor version into the least significant byte, and the major version into the second least significant byte.
 

Static Public Member Functions

template<typename Integer , if_valid_segment_type< Integer > = true>
static constexpr bool isValidSegment (Integer segment)
 Returns true if the given number can be used as either major or minor version in a QTypeRevision.
 
template<typename Major , typename Minor , if_valid_segment_type< Major > = true, if_valid_segment_type< Minor > = true>
static constexpr QTypeRevision fromVersion (Major majorVersion, Minor minorVersion)
 Produces a QTypeRevision from the given majorVersion and minorVersion, both of which need to be a valid segments.
 
template<typename Major , if_valid_segment_type< Major > = true>
static constexpr QTypeRevision fromMajorVersion (Major majorVersion)
 Produces a QTypeRevision from the given majorVersion with an invalid minor version.
 
template<typename Minor , if_valid_segment_type< Minor > = true>
static constexpr QTypeRevision fromMinorVersion (Minor minorVersion)
 Produces a QTypeRevision from the given minorVersion with an invalid major version.
 
template<typename Integer , if_valid_value_type< Integer > = true>
static constexpr QTypeRevision fromEncodedVersion (Integer value)
 Produces a QTypeRevision from the given value.
 
static constexpr QTypeRevision zero ()
 Produces a QTypeRevision with major and minor version {0}.
 

Friends

constexpr bool operator== (QTypeRevision lhs, QTypeRevision rhs)
 
constexpr bool operator!= (QTypeRevision lhs, QTypeRevision rhs)
 
constexpr bool operator< (QTypeRevision lhs, QTypeRevision rhs)
 
constexpr bool operator> (QTypeRevision lhs, QTypeRevision rhs)
 
constexpr bool operator<= (QTypeRevision lhs, QTypeRevision rhs)
 
constexpr bool operator>= (QTypeRevision lhs, QTypeRevision rhs)
 

Related Symbols

(Note that these are not member symbols.)

QDataStreamoperator<< (QDataStream &out, const QTypeRevision &revision)
 
QDataStreamoperator>> (QDataStream &in, QTypeRevision &revision)
 

Detailed Description

\inmodule QtCore

Since
6.0

The QTypeRevision class contains a lightweight representation of a version number with two 8-bit segments, major and minor, either of which can be unknown.

Use this class to describe revisions of a type. Compatible revisions can be expressed as increments of the minor version. Breaking changes can be expressed as increments of the major version. The return values of \l QMetaMethod::revision() and \l QMetaProperty::revision() can be passed to \l QTypeRevision::fromEncodedVersion(). The resulting major and minor versions specify in which Qt versions the properties and methods were added.

See also
QMetaMethod::revision(), QMetaProperty::revision()

Definition at line 318 of file qversionnumber.h.

Member Typedef Documentation

◆ if_valid_segment_type

template<typename Integer >
using QTypeRevision::if_valid_segment_type = typename std::enable_if< std::is_integral<Integer>::value, bool>::type

Definition at line 322 of file qversionnumber.h.

◆ if_valid_value_type

template<typename Integer >
using QTypeRevision::if_valid_value_type = typename std::enable_if< std::is_integral<Integer>::value && (sizeof(Integer) > sizeof(quint16) || (sizeof(Integer) == sizeof(quint16) && !std::is_signed<Integer>::value)), bool>::type

Definition at line 326 of file qversionnumber.h.

Constructor & Destructor Documentation

◆ QTypeRevision()

QTypeRevision::QTypeRevision ( )
constexprdefault

Produces an invalid revision.

See also
isValid()

Referenced by fromEncodedVersion(), fromMajorVersion(), fromMinorVersion(), fromVersion(), and zero().

+ Here is the caller graph for this function:

Member Function Documentation

◆ fromEncodedVersion()

template<typename Integer , if_valid_value_type< Integer > = true>
template< typename Integer > static QTypeRevision QTypeRevision::fromEncodedVersion ( Integer  value)
inlinestaticconstexpr

Produces a QTypeRevision from the given value.

value encodes both the minor and major versions in the least significant and second least significant byte, respectively.

value must not have any bits outside the least significant two bytes set. Integer needs to be at least 16 bits wide, and must not have a sign bit in the least significant 16 bits.

See also
toEncodedVersion()

Definition at line 366 of file qversionnumber.h.

References QTypeRevision(), Integer, and Q_ASSERT.

Referenced by availableRevisions(), QmlTypesClassDescription::collect(), collectExtraVersions(), isAllowedInMajorVersion(), isRevisionAllowed(), QQmlPropertyData::load(), QQmlPropertyData::load(), operator>>(), QQmlPrivate::revisionClassInfo(), QQmlPrivate::revisionClassInfos(), and QmlTypeRegistrar::write().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fromMajorVersion()

template<typename Major , if_valid_segment_type< Major > = true>
template< typename Major > static QTypeRevision QTypeRevision::fromMajorVersion ( Major  majorVersion)
inlinestaticconstexpr

Produces a QTypeRevision from the given majorVersion with an invalid minor version.

majorVersion needs to be a valid segment.

See also
isValidSegment()

Definition at line 352 of file qversionnumber.h.

References QTypeRevision(), isValidSegment(), majorVersion(), and Q_ASSERT.

Referenced by assignVersions(), QmlIR::IRBuilder::extractVersion(), QQmlMetaTypeData::propertyCache(), qmlProtectModule(), qmlRegisterAnonymousSequentialContainer(), qmlRegisterNamespaceAndRevisions(), QQmlPrivate::qmlRegisterSequenceAndRevisions(), QQmlPrivate::qmlRegisterSingletonAndRevisions(), QQmlPrivate::qmlRegisterTypeAndRevisions(), QQmlPrivate::qmlRegisterTypeAndRevisions< QQmlTypeNotAvailable, void >(), resolveImport(), and resolveModuleVersion().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fromMinorVersion()

template<typename Minor , if_valid_segment_type< Minor > = true>
template< typename Minor > static QTypeRevision QTypeRevision::fromMinorVersion ( Minor  minorVersion)
inlinestaticconstexpr

Produces a QTypeRevision from the given minorVersion with an invalid major version.

minorVersion needs to be a valid segment.

See also
isValidSegment()

Definition at line 359 of file qversionnumber.h.

References QTypeRevision(), isValidSegment(), minorVersion(), and Q_ASSERT.

Referenced by Moc::parsePropertyAttributes(), Moc::parseRevision(), QQmlPrivate::qmlregister(), qmlRegisterAnonymousType(), qmlRegisterCustomType(), qmlRegisterExtendedUncreatableType(), qmlRegisterRevision(), qmlRegisterType(), qmlRegisterUncreatableType(), QQmlTypeModuleVersion::type(), and QQmlImports::validVersion().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fromVersion()

template<typename Major , typename Minor , if_valid_segment_type< Major > = true, if_valid_segment_type< Minor > = true>
template< typename Major, typename Minor > static QTypeRevision QTypeRevision::fromVersion ( Major  majorVersion,
Minor  minorVersion 
)
inlinestaticconstexpr

◆ hasMajorVersion()

◆ hasMinorVersion()

bool QTypeRevision::hasMinorVersion ( ) const
inlineconstexpr

Returns true if the minor version is known, otherwise false.

See also
minorVersion(), hasMajorVersion()

Definition at line 379 of file qversionnumber.h.

Referenced by assignVersions(), QQmlType::availableInVersion(), QQmlImportInstance::getVersionedScripts(), QQmlPropertyCache::isAllowedInRevision(), isValid(), isVersionAllowed(), QQmlMetaType::matchingModuleVersion(), operator<<(), QQmlMetaTypeData::propertyCache(), qQmlResolveImportPaths(), QQmlJSScope::qualifiedNameFrom(), and QQmlMetaType::registerModule().

+ Here is the caller graph for this function:

◆ isValid()

bool QTypeRevision::isValid ( ) const
inlineconstexpr

Returns true if the major version or the minor version is known, otherwise false.

See also
hasMajorVersion(), hasMinorVersion()

Definition at line 382 of file qversionnumber.h.

References hasMajorVersion(), and hasMinorVersion().

Referenced by QQmlImports::addFileImport(), QQmlImports::addLibraryImport(), QmlTypesClassDescription::collect(), QQmlPropertyCache::createStandalone(), QQmlPluginImporter::importDynamicPlugin(), QQmlPluginImporter::importPlugins(), QQmlPluginImporter::importStaticPlugin(), isRevisionAllowed(), QQmlImportDatabase::lockModule(), QQmlDirParser::parse(), Moc::parseSignals(), Moc::parseSlots(), QQmlPrivate::qmlregister(), QQuickStylePlugin::registerTypes(), QQmlTypeLoader::Blob::updateQmldir(), QQmlImports::updateQmldirContent(), QQmlImports::validVersion(), and QmlTypeRegistrar::write().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isValidSegment()

template<typename Integer , if_valid_segment_type< Integer > = true>
template< typename Integer > static bool QTypeRevision::isValidSegment ( Integer  segment)
inlinestaticconstexpr

Returns true if the given number can be used as either major or minor version in a QTypeRevision.

The valid range for segment is {>= 0} and {< 255}.

Definition at line 333 of file qversionnumber.h.

References Integer.

Referenced by fromMajorVersion(), fromMinorVersion(), fromVersion(), Moc::parsePropertyAttributes(), Moc::parseRevision(), and QQmlTypeModuleVersion::type().

+ Here is the caller graph for this function:

◆ majorVersion()

◆ minorVersion()

◆ toEncodedVersion()

template<typename Integer , if_valid_value_type< Integer > = true>
template< typename Integer > Integer QTypeRevision::toEncodedVersion ( ) const
inlineconstexpr

Transforms the revision into an integer value, encoding the minor version into the least significant byte, and the major version into the second least significant byte.

Integer needs to be at least 16 bits wide, and must not have a sign bit in the least significant 16 bits.

See also
fromEncodedVersion()

Definition at line 385 of file qversionnumber.h.

References Integer.

Referenced by operator<<(), Moc::parsePropertyAttributes(), Moc::parseSignals(), Moc::parseSlots(), and Moc::testFunctionRevision().

+ Here is the caller graph for this function:

◆ zero()

Friends And Related Symbol Documentation

◆ operator!=

constexpr bool operator!= ( QTypeRevision  lhs,
QTypeRevision  rhs 
)
friend

Definition at line 395 of file qversionnumber.h.

◆ operator<

constexpr bool operator< ( QTypeRevision  lhs,
QTypeRevision  rhs 
)
friend

Definition at line 400 of file qversionnumber.h.

◆ operator<<()

QDataStream & operator<< ( QDataStream out,
const QTypeRevision revision 
)
related
Since
6.0

Writes the revision revision to stream out.

Definition at line 683 of file qversionnumber.cpp.

References out, and toEncodedVersion().

+ Here is the call graph for this function:

◆ operator<=

constexpr bool operator<= ( QTypeRevision  lhs,
QTypeRevision  rhs 
)
friend

Definition at line 426 of file qversionnumber.h.

◆ operator==

constexpr bool operator== ( QTypeRevision  lhs,
QTypeRevision  rhs 
)
friend

Definition at line 390 of file qversionnumber.h.

◆ operator>

constexpr bool operator> ( QTypeRevision  lhs,
QTypeRevision  rhs 
)
friend

Definition at line 421 of file qversionnumber.h.

◆ operator>=

constexpr bool operator>= ( QTypeRevision  lhs,
QTypeRevision  rhs 
)
friend

Definition at line 431 of file qversionnumber.h.

◆ operator>>()

QDataStream & operator>> ( QDataStream in,
QTypeRevision revision 
)
related
Since
6.0

Reads a revision from stream in and stores it in revision.

Definition at line 695 of file qversionnumber.cpp.

References fromEncodedVersion().

+ Here is the call graph for this function:

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