![]() |
Qt 6.x
The Qt SDK
|
\inmodule QtDBus More...
#include <qdbusargument.h>
Public Types | |
enum | ElementType { BasicType , VariantType , ArrayType , StructureType , MapType , MapEntryType , UnknownType = -1 } |
Public Member Functions | |
QDBusArgument () | |
Constructs an empty QDBusArgument argument. | |
QDBusArgument (const QDBusArgument &other) | |
Constructs a copy of the other QDBusArgument object. | |
QDBusArgument (QDBusArgument &&other) noexcept | |
QDBusArgument & | operator= (QDBusArgument &&other) noexcept |
QDBusArgument & | operator= (const QDBusArgument &other) |
Copies the other QDBusArgument object into this one. | |
~QDBusArgument () | |
Disposes of the resources associated with this QDBusArgument object. | |
void | swap (QDBusArgument &other) noexcept |
Swaps this QDBusArgument instance with other. | |
QDBusArgument & | operator<< (uchar arg) |
Appends the primitive value arg of type {BYTE} to the D-Bus stream. | |
QDBusArgument & | operator<< (bool arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {BOOLEAN} to the D-Bus stream. | |
QDBusArgument & | operator<< (short arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {INT16} to the D-Bus stream. | |
QDBusArgument & | operator<< (ushort arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {UINT16} to the D-Bus stream. | |
QDBusArgument & | operator<< (int arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {INT32} to the D-Bus stream. | |
QDBusArgument & | operator<< (uint arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {UINT32} to the D-Bus stream. | |
QDBusArgument & | operator<< (qlonglong arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {INT64} to the D-Bus stream. | |
QDBusArgument & | operator<< (qulonglong arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {UINT64} to the D-Bus stream. | |
QDBusArgument & | operator<< (double arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {DOUBLE} (double-precision floating-point) to the D-Bus stream. | |
QDBusArgument & | operator<< (const QString &arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {STRING} (Unicode character string) to the D-Bus stream. | |
QDBusArgument & | operator<< (const QDBusVariant &arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {VARIANT} to the D-Bus stream. | |
QDBusArgument & | operator<< (const QDBusObjectPath &arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QDBusArgument & | operator<< (const QDBusSignature &arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QDBusArgument & | operator<< (const QDBusUnixFileDescriptor &arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QDBusArgument & | operator<< (const QStringList &arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the QStringList given by arg as {ARRAY of STRING} to the D-Bus stream. | |
QDBusArgument & | operator<< (const QByteArray &arg) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the QByteArray given by arg as {ARRAY of BYTE} to the D-Bus stream. | |
void | beginStructure () |
Opens a new D-Bus structure suitable for appending new arguments. | |
void | endStructure () |
Closes a D-Bus structure opened with beginStructure(). | |
void | beginArray (int elementMetaTypeId) |
void | beginArray (QMetaType elementMetaType) |
Opens a new D-Bus array suitable for appending elements of meta-type id. | |
void | endArray () |
Closes a D-Bus array opened with beginArray(). | |
void | beginMap (int keyMetaTypeId, int valueMetaTypeId) |
void | beginMap (QMetaType keyMetaType, QMetaType valueMetaType) |
Opens a new D-Bus map suitable for appending elements. | |
void | endMap () |
Closes a D-Bus map opened with beginMap(). | |
void | beginMapEntry () |
Opens a D-Bus map entry suitable for appending the key and value entries. | |
void | endMapEntry () |
Closes a D-Bus map entry opened with beginMapEntry(). | |
void | appendVariant (const QVariant &v) |
QString | currentSignature () const |
ElementType | currentType () const |
const QDBusArgument & | operator>> (uchar &arg) const |
Extracts one D-Bus primitive argument of type {BYTE} from the D-Bus stream and puts it into arg. | |
const QDBusArgument & | operator>> (bool &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {BOOLEAN} from the D-Bus stream. | |
const QDBusArgument & | operator>> (short &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {INT16} from the D-Bus stream. | |
const QDBusArgument & | operator>> (ushort &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {UINT16} from the D-Bus stream. | |
const QDBusArgument & | operator>> (int &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {INT32} from the D-Bus stream. | |
const QDBusArgument & | operator>> (uint &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {UINT32} from the D-Bus stream. | |
const QDBusArgument & | operator>> (qlonglong &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {INT64} from the D-Bus stream. | |
const QDBusArgument & | operator>> (qulonglong &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {UINT64} from the D-Bus stream. | |
const QDBusArgument & | operator>> (double &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {DOUBLE} (double-precision floating point) from the D-Bus stream. | |
const QDBusArgument & | operator>> (QString &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {STRING} (Unicode character string) from the D-Bus stream. | |
const QDBusArgument & | operator>> (QDBusVariant &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {VARIANT} from the D-Bus stream. | |
const QDBusArgument & | operator>> (QDBusObjectPath &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QDBusArgument & | operator>> (QDBusSignature &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QDBusArgument & | operator>> (QDBusUnixFileDescriptor &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QDBusArgument & | operator>> (QStringList &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts an array of strings from the D-Bus stream and return it as a QStringList. | |
const QDBusArgument & | operator>> (QByteArray &arg) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts an array of bytes from the D-Bus stream and return it as a QByteArray. | |
void | beginStructure () const |
Opens a D-Bus structure suitable for extracting elements. | |
void | endStructure () const |
Closes the D-Bus structure and allow extracting of the next element after the structure. | |
void | beginArray () const |
Recurses into the D-Bus array to allow extraction of the array elements. | |
void | endArray () const |
Closes the D-Bus array and allow extracting of the next element after the array. | |
void | beginMap () const |
Recurses into the D-Bus map to allow extraction of the map's elements. | |
void | endMap () const |
Closes the D-Bus map and allow extracting of the next element after the map. | |
void | beginMapEntry () const |
Recurses into the D-Bus map entry to allow extraction of the key and value pair. | |
void | endMapEntry () const |
Closes the D-Bus map entry and allow extracting of the next element on the map. | |
bool | atEnd () const |
Returns true if there are no more elements to be extracted from this QDBusArgument. | |
QVariant | asVariant () const |
Protected Member Functions | |
QDBusArgument (QDBusArgumentPrivate *d) | |
Protected Attributes | |
QDBusArgumentPrivate * | d |
Friends | |
class | QDBusArgumentPrivate |
Related Symbols | |
(Note that these are not member symbols.) | |
template< typename T > T | qdbus_cast (const QDBusArgument &arg) |
int | qDBusRegisterMetaType () |
\threadsafe | |
\inmodule QtDBus
The QDBusArgument class is used to marshall and demarshall D-Bus arguments.
The class is used to send arguments over D-Bus to remote applications and to receive them back. D-Bus offers an extensible type system, based on a few primitive types and associations of them. See the \l {qdbustypesystem.html}{Qt D-Bus Type System} page for more information on the type system.
QDBusArgument is the central class in the Qt D-Bus type system, providing functions to marshall and demarshall the primitive types. The compound types are then created by association of one or more of the primitive types in arrays, dictionaries or structures.
The following example illustrates how a structure containing an integer and a string can be constructed using the \l {qdbustypesystem.html}{Qt D-Bus type system}:
\codeline
The type has to be registered with qDBusRegisterMetaType() before it can be used with QDBusArgument. Therefore, somewhere in your program, you should add the following code:
Once registered, a type can be used in outgoing method calls (placed with QDBusAbstractInterface::call()), signal emissions from registered objects or in incoming calls from remote applications.
It is important to note that the {operator<<} and
{operator>>} streaming functions must always produce the same number of entries in case of structures, both in reading and in writing (marshalling and demarshalling), otherwise calls and signals may start to silently fail.
The following example illustrates this wrong usage in context of a class that may contain invalid data:
In this example, both the {operator<<} and the
{operator>>} functions may produce a different number of reads/writes. This can confuse the Qt D-Bus type system and should be avoided.
Definition at line 28 of file qdbusargument.h.
This enum describes the type of element held by the argument.
\value BasicType A basic element, which is understood by QVariant. The following types are considered basic: bool, byte, short, ushort, int, uint, qint64, quint64, double, QString, QByteArray, QDBusObjectPath, QDBusSignature
\value VariantType The variant element (QDBusVariant)
\value ArrayType An array element, usually represented by QList<T>. Note: QByteArray and associative maps are not considered arrays, even if the D-Bus protocol transports them as such.
\value StructureType A custom type represented by a structure, like QDateTime, QPoint, etc.
\value MapType An associative container, like QMap<Key, Value> or QHash<Key, Value>
\value MapEntryType One entry in an associative container: both the key and the value form one map-entry type.
\value UnknownType The type is unknown or we have reached the end of the list.
Enumerator | |
---|---|
BasicType | |
VariantType | |
ArrayType | |
StructureType | |
MapType | |
MapEntryType | |
UnknownType |
Definition at line 31 of file qdbusargument.h.
QDBusArgument::QDBusArgument | ( | ) |
Constructs an empty QDBusArgument argument.
An empty QDBusArgument object does not allow either reading or writing to be performed.
Definition at line 256 of file qdbusargument.cpp.
References d, DBUS_MESSAGE_TYPE_METHOD_CALL, QDBusMarshaller::iterator, QDBusArgumentPrivate::message, and qdbus_loadLibDBus().
QDBusArgument::QDBusArgument | ( | const QDBusArgument & | other | ) |
Constructs a copy of the other QDBusArgument object.
Both objects will therefore contain the same state from this point forward. QDBusArguments are explicitly shared and, therefore, any modification to either copy will affect the other one too.
Definition at line 278 of file qdbusargument.cpp.
References d, QBasicAtomicInteger< T >::ref(), and QDBusArgumentPrivate::ref.
|
inlinenoexcept |
Definition at line 43 of file qdbusargument.h.
References other().
QDBusArgument::~QDBusArgument | ( | ) |
Disposes of the resources associated with this QDBusArgument object.
Definition at line 310 of file qdbusargument.cpp.
References d, QBasicAtomicInteger< T >::deref(), and QDBusArgumentPrivate::ref.
|
protected |
Definition at line 288 of file qdbusargument.cpp.
Appends the variant v.
Definition at line 525 of file qdbusargument.cpp.
References QDBusMarshaller::appendVariantInternal(), QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QVariant QDBusArgument::asVariant | ( | ) | const |
Returns the current argument in the form of a QVariant. Basic types will be decoded and returned in the QVariant, but for complex types, this function will return a QDBusArgument object in the QVariant. It is the caller's responsibility to decode the argument (for example, by calling asVariant() in it).
For example, if the current argument is an INT32, this function will return a QVariant with an argument of type QMetaType::Int. For an array of INT32, it will return a QVariant containing a QDBusArgument.
If an error occurs or if there are no more arguments to decode (i.e., we are at the end of the argument list), this function will return an invalid QVariant.
Definition at line 1085 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkRead(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toVariantInternal().
Referenced by argToString().
bool QDBusArgument::atEnd | ( | ) | const |
Returns true
if there are no more elements to be extracted from this QDBusArgument.
This function is usually used in QDBusArgument objects returned from beginMap() and beginArray().
Definition at line 1057 of file qdbusargument.cpp.
References QDBusDemarshaller::atEnd(), QDBusArgumentPrivate::checkRead(), d, and QDBusArgumentPrivate::demarshaller().
Referenced by argToString(), QIBusSerializable::deserializeFrom(), QDBusSnippets::operator>>(), QDBusSnippets::operator>>(), operator>>(), and operator>>().
void QDBusArgument::beginArray | ( | ) | const |
Recurses into the D-Bus array to allow extraction of the array elements.
This function is used usually in {operator>>} streaming operators, as in the following example:
If the type you want to demarshall is a QList or any of the Qt's \l {Container Classes} that take one template parameter, you need not declare an {operator>>} function for it, since Qt D-Bus provides generic templates to do the job of demarshalling the data. The same applies for STL's sequence containers, such as
{std::list}
, {std::vector}
, etc.
Definition at line 975 of file qdbusargument.cpp.
References QDBusDemarshaller::beginArray(), QDBusArgumentPrivate::checkReadAndDetach(), d, and QDBusArgumentPrivate::demarshaller().
|
inline |
Definition at line 70 of file qdbusargument.h.
Referenced by argToString(), QDBusSnippets::operator<<(), operator<<(), QDBusSnippets::operator>>(), operator>>(), and QIBusAttributeList::serializeTo().
Opens a new D-Bus array suitable for appending elements of meta-type id.
This function is used usually in {operator<<} streaming operators, as in the following example:
If the type you want to marshall is a QList or any of the Qt's \l {Container Classes} that take one template parameter, you need not declare an {operator<<} function for it, since Qt D-Bus provides generic templates to do the job of marshalling the data. The same applies for STL's sequence containers, such as
{std::list}
, {std::vector}
, etc.
Definition at line 847 of file qdbusargument.cpp.
References QDBusMarshaller::beginArray(), QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
void QDBusArgument::beginMap | ( | ) | const |
Recurses into the D-Bus map to allow extraction of the map's elements.
This function is used usually in {operator>>} streaming operators, as in the following example:
If the type you want to demarshall is a QMap or QHash, you need not declare an {operator>>} function for it, since Qt D-Bus provides generic templates to do the job of demarshalling the data.
Definition at line 1008 of file qdbusargument.cpp.
References QDBusDemarshaller::beginMap(), QDBusArgumentPrivate::checkReadAndDetach(), d, and QDBusArgumentPrivate::demarshaller().
|
inline |
Definition at line 74 of file qdbusargument.h.
Referenced by argToString(), QIBusSerializable::deserializeFrom(), QDBusSnippets::operator<<(), QDBusSnippets::operator>>(), operator>>(), and QIBusSerializable::serializeTo().
Opens a new D-Bus map suitable for appending elements.
Maps are containers that associate one entry (the key) to another (the value), such as Qt's QMap or QHash. The ids of the map's key and value meta types must be passed in keyMetaType and valueMetaType respectively.
This function is used usually in {operator<<} streaming operators, as in the following example:
You usually don't need to provide an {operator<<} or
{operator>>} function for associative containers such as QHash or std::map, since Qt D-Bus provides generic templates to do the job of marshalling the data.
Definition at line 884 of file qdbusargument.cpp.
References QDBusMarshaller::beginMap(), QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
void QDBusArgument::beginMapEntry | ( | ) |
Opens a D-Bus map entry suitable for appending the key and value entries.
This function is only valid when a map has been opened with beginMap().
See beginMap() for an example of usage of this function.
Definition at line 911 of file qdbusargument.cpp.
References QDBusMarshaller::beginMapEntry(), QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
Referenced by argToString(), QIBusSerializable::deserializeFrom(), QDBusSnippets::operator<<(), QDBusSnippets::operator>>(), operator>>(), and QIBusSerializable::serializeTo().
void QDBusArgument::beginMapEntry | ( | ) | const |
Recurses into the D-Bus map entry to allow extraction of the key and value pair.
See beginMap() for an example of how this function is usually used.
Definition at line 1034 of file qdbusargument.cpp.
References QDBusDemarshaller::beginMapEntry(), QDBusArgumentPrivate::checkReadAndDetach(), d, and QDBusArgumentPrivate::demarshaller().
void QDBusArgument::beginStructure | ( | ) |
Opens a new D-Bus structure suitable for appending new arguments.
This function is used usually in {operator<<} streaming operators, as in the following example:
Structures can contain other structures, so the following code is also valid:
Definition at line 812 of file qdbusargument.cpp.
References QDBusMarshaller::beginStructure(), QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
Referenced by argToString(), QIBusAttribute::deserializeFrom(), QIBusText::deserializeFrom(), QIBusEngineDesc::deserializeFrom(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), QDBusSnippets::operator<<(), QDBusSnippets::Alt::operator<<(), operator<<(), operator<<(), operator>>(), operator>>(), operator>>(), QDBusSnippets::operator>>(), operator>>(), operator>>(), QIBusAttribute::serializeTo(), QIBusAttributeList::serializeTo(), QIBusText::serializeTo(), and QIBusEngineDesc::serializeTo().
void QDBusArgument::beginStructure | ( | ) | const |
Opens a D-Bus structure suitable for extracting elements.
This function is used usually in {operator>>} streaming operators, as in the following example:
Definition at line 939 of file qdbusargument.cpp.
References QDBusDemarshaller::beginStructure(), QDBusArgumentPrivate::checkReadAndDetach(), d, and QDBusArgumentPrivate::demarshaller().
QString QDBusArgument::currentSignature | ( | ) | const |
Returns the type signature of the D-Bus type this QDBusArgument object is currently pointing to.
Definition at line 536 of file qdbusargument.cpp.
References QDBusMarshaller::currentSignature(), QDBusDemarshaller::currentSignature(), d, QDBusArgumentPrivate::demarshaller(), QDBusArgumentPrivate::Demarshalling, QDBusArgumentPrivate::direction, and QDBusArgumentPrivate::marshaller().
Referenced by argToString(), copyArgument(), QIBusText::deserializeFrom(), and QIBusEngineDesc::deserializeFrom().
QDBusArgument::ElementType QDBusArgument::currentType | ( | ) | const |
This function only makes sense when demarshalling arguments. If it is used while marshalling, it will always return UnknownType.
Definition at line 555 of file qdbusargument.cpp.
References QDBusDemarshaller::currentType(), d, QDBusArgumentPrivate::demarshaller(), QDBusArgumentPrivate::Demarshalling, QDBusArgumentPrivate::direction, and UnknownType.
Referenced by argToString().
void QDBusArgument::endArray | ( | ) |
Closes a D-Bus array opened with beginArray().
This function must be called same number of times that beginArray() is called.
Definition at line 859 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkWrite(), d, QDBusMarshaller::endArray(), and QDBusArgumentPrivate::marshaller().
Referenced by argToString(), QDBusSnippets::operator<<(), operator<<(), QDBusSnippets::operator>>(), operator>>(), and QIBusAttributeList::serializeTo().
void QDBusArgument::endArray | ( | ) | const |
Closes the D-Bus array and allow extracting of the next element after the array.
Definition at line 987 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::endArray().
void QDBusArgument::endMap | ( | ) |
Closes a D-Bus map opened with beginMap().
This function must be called same number of times that beginMap() is called.
Definition at line 896 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkWrite(), d, QDBusMarshaller::endMap(), and QDBusArgumentPrivate::marshaller().
Referenced by argToString(), QIBusSerializable::deserializeFrom(), QDBusSnippets::operator<<(), QDBusSnippets::operator>>(), operator>>(), and QIBusSerializable::serializeTo().
void QDBusArgument::endMap | ( | ) | const |
Closes the D-Bus map and allow extracting of the next element after the map.
Definition at line 1020 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::endMap().
void QDBusArgument::endMapEntry | ( | ) |
Closes a D-Bus map entry opened with beginMapEntry().
This function must be called same number of times that beginMapEntry() is called.
Definition at line 923 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkWrite(), d, QDBusMarshaller::endMapEntry(), and QDBusArgumentPrivate::marshaller().
Referenced by argToString(), QIBusSerializable::deserializeFrom(), QDBusSnippets::operator<<(), QDBusSnippets::operator>>(), operator>>(), and QIBusSerializable::serializeTo().
void QDBusArgument::endMapEntry | ( | ) | const |
Closes the D-Bus map entry and allow extracting of the next element on the map.
Definition at line 1046 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::endMapEntry().
void QDBusArgument::endStructure | ( | ) |
Closes a D-Bus structure opened with beginStructure().
This function must be called same number of times that beginStructure() is called.
Definition at line 824 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkWrite(), d, QDBusMarshaller::endStructure(), and QDBusArgumentPrivate::marshaller().
Referenced by argToString(), QIBusAttribute::deserializeFrom(), QIBusText::deserializeFrom(), QIBusEngineDesc::deserializeFrom(), operator<<(), QDBusSnippets::operator<<(), QDBusSnippets::Alt::operator<<(), operator<<(), operator<<(), operator>>(), QDBusSnippets::operator>>(), operator>>(), operator>>(), QIBusAttribute::serializeTo(), QIBusAttributeList::serializeTo(), QIBusText::serializeTo(), and QIBusEngineDesc::serializeTo().
void QDBusArgument::endStructure | ( | ) | const |
Closes the D-Bus structure and allow extracting of the next element after the structure.
Definition at line 951 of file qdbusargument.cpp.
References QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::endStructure().
QDBusArgument & QDBusArgument::operator<< | ( | bool | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {BOOLEAN} to the D-Bus stream.
Definition at line 330 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | const QByteArray & | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the QByteArray given by arg as {ARRAY of BYTE} to the D-Bus stream.
QStringList and QByteArray are the only two non-primitive types that are supported directly by QDBusArgument because of their widespread usage in Qt applications.
Other arrays are supported through compound types in Qt D-Bus.
Definition at line 510 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | const QDBusObjectPath & | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Appends the primitive value arg of type {OBJECT_PATH} (path to a D-Bus object) to the D-Bus stream.
Definition at line 433 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | const QDBusSignature & | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Appends the primitive value arg of type {SIGNATURE} (D-Bus type signature) to the D-Bus stream.
Definition at line 446 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | const QDBusUnixFileDescriptor & | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Appends the primitive value arg of type {UNIX_FILE_DESCRIPTOR} (Unix File Descriptor) to the D-Bus stream.
Definition at line 460 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | const QDBusVariant & | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {VARIANT} to the D-Bus stream.
A D-Bus variant type can contain any type, including other variants. It is similar to the Qt QVariant type.
Definition at line 474 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | const QString & | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {STRING} (Unicode character string) to the D-Bus stream.
Definition at line 420 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | const QStringList & | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the QStringList given by arg as {ARRAY of STRING} to the D-Bus stream.
QStringList and QByteArray are the only two non-primitive types that are supported directly by QDBusArgument because of their widespread usage in Qt applications.
Other arrays are supported through compound types in Qt D-Bus.
Definition at line 492 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | double | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {DOUBLE} (double-precision floating-point) to the D-Bus stream.
Definition at line 408 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | int | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {INT32} to the D-Bus stream.
Definition at line 363 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | qlonglong | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {INT64} to the D-Bus stream.
Definition at line 385 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | qulonglong | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {UINT64} to the D-Bus stream.
Definition at line 396 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | short | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {INT16} to the D-Bus stream.
Definition at line 341 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | uchar | arg | ) |
Appends the primitive value arg of type {BYTE} to the D-Bus stream.
Definition at line 319 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | uint | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {UINT32} to the D-Bus stream.
Definition at line 374 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator<< | ( | ushort | arg | ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Appends the primitive value arg of type {UINT16} to the D-Bus stream.
Definition at line 352 of file qdbusargument.cpp.
References QDBusMarshaller::append(), arg, QDBusArgumentPrivate::checkWrite(), d, and QDBusArgumentPrivate::marshaller().
QDBusArgument & QDBusArgument::operator= | ( | const QDBusArgument & | other | ) |
Copies the other QDBusArgument object into this one.
Both objects will therefore contain the same state from this point forward. QDBusArguments are explicitly shared and, therefore, any modification to either copy will affect the other one too.
Definition at line 300 of file qdbusargument.cpp.
References d, other(), and qAtomicAssign().
|
inlinenoexcept |
Definition at line 44 of file qdbusargument.h.
References other(), and swap().
const QDBusArgument & QDBusArgument::operator>> | ( | bool & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {BOOLEAN} from the D-Bus stream.
Definition at line 582 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toBool().
const QDBusArgument & QDBusArgument::operator>> | ( | double & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {DOUBLE} (double-precision floating point) from the D-Bus stream.
Definition at line 680 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toDouble().
const QDBusArgument & QDBusArgument::operator>> | ( | int & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {INT32} from the D-Bus stream.
Definition at line 624 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toInt().
const QDBusArgument & QDBusArgument::operator>> | ( | QByteArray & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts an array of bytes from the D-Bus stream and return it as a QByteArray.
QStringList and QByteArray are the only two non-primitive types that are supported directly by QDBusArgument because of their widespread usage in Qt applications.
Other arrays are supported through compound types in Qt D-Bus.
Definition at line 790 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toByteArray().
const QDBusArgument & QDBusArgument::operator>> | ( | QDBusObjectPath & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Extracts one D-Bus primitive argument of type {OBJECT_PATH} (D-Bus path to an object) from the D-Bus stream.
Definition at line 707 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toObjectPath().
const QDBusArgument & QDBusArgument::operator>> | ( | QDBusSignature & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Extracts one D-Bus primitive argument of type {SIGNATURE} (D-Bus type signature) from the D-Bus stream.
Definition at line 720 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toSignature().
const QDBusArgument & QDBusArgument::operator>> | ( | QDBusUnixFileDescriptor & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Extracts one D-Bus primitive argument of type {UNIX_FILE_DESCRIPTOR} (Unix file descriptor) from the D-Bus stream.
Definition at line 734 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toUnixFileDescriptor().
const QDBusArgument & QDBusArgument::operator>> | ( | QDBusVariant & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {VARIANT} from the D-Bus stream.
A D-Bus variant type can contain any type, including other variants. It is similar to the Qt QVariant type.
In case the variant contains a type not directly supported by QDBusArgument, the value of the returned QDBusVariant will contain another QDBusArgument. It is your responsibility to further demarshall it into another type.
Definition at line 754 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toVariant().
const QDBusArgument & QDBusArgument::operator>> | ( | qlonglong & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {INT64} from the D-Bus stream.
Definition at line 652 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toLongLong().
const QDBusArgument & QDBusArgument::operator>> | ( | QString & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {STRING} (Unicode character string) from the D-Bus stream.
Definition at line 694 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toString().
const QDBusArgument & QDBusArgument::operator>> | ( | QStringList & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts an array of strings from the D-Bus stream and return it as a QStringList.
QStringList and QByteArray are the only two non-primitive types that are supported directly by QDBusArgument because of their widespread usage in Qt applications.
Other arrays are supported through compound types in Qt D-Bus.
Definition at line 772 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toStringList().
const QDBusArgument & QDBusArgument::operator>> | ( | qulonglong & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {UINT64} from the D-Bus stream.
Definition at line 666 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toULongLong().
const QDBusArgument & QDBusArgument::operator>> | ( | short & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {INT16} from the D-Bus stream.
Definition at line 610 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toShort().
const QDBusArgument & QDBusArgument::operator>> | ( | uchar & | arg | ) | const |
Extracts one D-Bus primitive argument of type {BYTE} from the D-Bus stream and puts it into arg.
Definition at line 568 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toByte().
const QDBusArgument & QDBusArgument::operator>> | ( | uint & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {UINT32} from the D-Bus stream.
Definition at line 638 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toUInt().
const QDBusArgument & QDBusArgument::operator>> | ( | ushort & | arg | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Extracts one D-Bus primitive argument of type {UINT16} from the D-Bus stream.
Definition at line 596 of file qdbusargument.cpp.
References arg, QDBusArgumentPrivate::checkReadAndDetach(), d, QDBusArgumentPrivate::demarshaller(), and QDBusDemarshaller::toUShort().
|
inlinenoexcept |
Swaps this QDBusArgument instance with other.
Definition at line 48 of file qdbusargument.h.
References d, other(), and qt_ptr_swap().
|
related |
Attempts to demarshall the contents of arg into the type {T}. For example:
Note that it is equivalent to the following:
Definition at line 127 of file qdbusargument.h.
|
friend |
Definition at line 118 of file qdbusargument.h.
|
related |
\threadsafe
Registers {T} with the \l {qdbustypesystem.html}{Qt D-Bus Type System} and the Qt \l {QMetaType}{meta-type system}, if it's not already registered.
To register a type, it must be declared as a meta-type with the Q_DECLARE_METATYPE() macro, and then registered as in the following example:
\codeline
If {T} isn't one of Qt's \l{container classes}, the
{operator<<} and
{operator>>} streaming operators between
{T} and QDBusArgument must be already declared. See the \l {qdbustypesystem.html}{Qt D-Bus Type System} page for more information on how to declare such types.
This function returns the Qt meta type id for the type (the same value that is returned from qRegisterMetaType()).
{T} inheriting a streamable type (including the containers QList, QHash or QMap) can be streamed without providing custom
{operator<<} and
{operator>>} is deprecated as of Qt 5.7, because it ignores everything in
{T} except the base class. There is no diagnostic. You should always provide these operators for all types you wish to stream and not rely on Qt-provided stream operators for base classes.Definition at line 33 of file qdbusmetatype.h.
References arg, and QDBusMetaType::registerMarshallOperators().
|
mutableprotected |
Definition at line 119 of file qdbusargument.h.
Referenced by QDBusArgument(), QDBusArgument(), ~QDBusArgument(), appendVariant(), asVariant(), atEnd(), beginArray(), beginArray(), beginMap(), beginMap(), beginMapEntry(), beginMapEntry(), beginStructure(), beginStructure(), currentSignature(), currentType(), endArray(), endArray(), endMap(), endMap(), endMapEntry(), endMapEntry(), endStructure(), endStructure(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator=(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), operator>>(), and operator>>().