QDBusArgument Class
QDBusArgument 클래스는 D-Bus 인수를 마샬링 및 디마샬링하는 데 사용됩니다. 더 보기...
Header: | #include <QDBusArgument> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
공용 타입
enum | ElementType { BasicType, VariantType, ArrayType, StructureType, MapType, …, UnknownType } |
공용 함수
QDBusArgument() | |
QDBusArgument(const QDBusArgument &other) | |
~QDBusArgument() | |
QVariant | asVariant() const |
bool | atEnd() const |
void | beginArray() const |
void | beginArray(QMetaType id) |
void | beginMap() const |
void | beginMap(QMetaType keyMetaType, QMetaType valueMetaType) |
void | beginMapEntry() |
void | beginMapEntry() const |
void | beginStructure() |
void | beginStructure() const |
QDBusArgument::ElementType | currentType() const |
void | endArray() |
void | endArray() const |
void | endMap() |
void | endMap() const |
void | endMapEntry() |
void | endMapEntry() const |
void | endStructure() |
void | endStructure() const |
void | swap(QDBusArgument &other) |
QDBusArgument & | operator<<(uchar arg) |
QDBusArgument & | operator<<(bool arg) |
QDBusArgument & | operator<<(const QByteArray &arg) |
QDBusArgument & | operator<<(const QDBusVariant &arg) |
QDBusArgument & | operator<<(const QString &arg) |
QDBusArgument & | operator<<(const QStringList &arg) |
QDBusArgument & | operator<<(double arg) |
QDBusArgument & | operator<<(int arg) |
QDBusArgument & | operator<<(qlonglong arg) |
QDBusArgument & | operator<<(qulonglong arg) |
QDBusArgument & | operator<<(short arg) |
QDBusArgument & | operator<<(uint arg) |
QDBusArgument & | operator<<(ushort arg) |
QDBusArgument & | operator=(const QDBusArgument &other) |
const QDBusArgument & | operator>>(uchar &arg) const |
const QDBusArgument & | operator>>(QByteArray &arg) const |
const QDBusArgument & | operator>>(QDBusVariant &arg) const |
const QDBusArgument & | operator>>(QString &arg) const |
const QDBusArgument & | operator>>(QStringList &arg) const |
const QDBusArgument & | operator>>(bool &arg) const |
const QDBusArgument & | operator>>(double &arg) const |
const QDBusArgument & | operator>>(int &arg) const |
const QDBusArgument & | operator>>(qlonglong &arg) const |
const QDBusArgument & | operator>>(qulonglong &arg) const |
const QDBusArgument & | operator>>(short &arg) const |
const QDBusArgument & | operator>>(uint &arg) const |
const QDBusArgument & | operator>>(ushort &arg) const |
관련 비회원
QMetaType | qDBusRegisterMetaType() |
T | qdbus_cast(const QDBusArgument &arg) |
상세 설명
이 클래스는 D-Bus를 통해 원격 애플리케이션에 인수를 전송하고 다시 수신하는 데 사용됩니다. D-Bus는 몇 가지 기본 유형과 이들의 연관성을 기반으로 확장 가능한 유형 시스템을 제공합니다. 타입 시스템에 대한 자세한 내용은 Qt D-Bus 타입 시스템 페이지를 참조하십시오.
QDBusArgument는 Qt D-Bus 타입 시스템의 중심 클래스로, 기본 타입을 마샬링 및 디마샬링하는 함수를 제공합니다. 그런 다음 복합 유형은 배열, 사전 또는 구조체에서 하나 이상의 기본 유형을 연결하여 생성됩니다.
다음 예는 Qt D-Bus 타입 시스템을 사용하여 정수와 문자열을 포함하는 구조체를 만드는 방법을 보여줍니다:
struct MyStructure { int count; QString name; // ... }; Q_DECLARE_METATYPE(MyStructure) // Marshall the MyStructure data into a D-Bus argument QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct) { argument.beginStructure(); argument << myStruct.count << myStruct.name; argument.endStructure(); return argument; } // Retrieve the MyStructure data from the D-Bus argument const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &myStruct) { argument.beginStructure(); argument >> myStruct.count >> myStruct.name; argument.endStructure(); return argument; }
이 유형은 qDBusRegisterMetaType()에 등록해야 QDBusArgument와 함께 사용할 수 있습니다. 따라서 프로그램 어딘가에 다음 코드를 추가해야 합니다:
qDBusRegisterMetaType<MyStructure>();
일단 등록된 유형은 나가는 메서드 호출( QDBusAbstractInterface::call()로 배치), 등록된 객체의 신호 방출 또는 원격 애플리케이션의 수신 호출에 사용할 수 있습니다.
operator<<
및 operator>>
스트리밍 함수는 구조체의 경우 읽기 및 쓰기(마샬링 및 디마샬링) 모두에서 항상 동일한 수의 항목을 생성해야 하며, 그렇지 않으면 호출 및 신호가 자동으로 실패하기 시작할 수 있다는 점에 유의하세요.
다음 예시는 잘못된 데이터를 포함할 수 있는 클래스의 맥락에서 이러한 잘못된 사용법을 보여줍니다:
//bad code // Wrongly marshall the MyTime data into a D-Bus argument QDBusArgument &operator<<(QDBusArgument &argument, const MyTime &mytime) { argument.beginStructure(); if (mytime.isValid) argument << true << mytime.hour << mytime.minute << mytime.second; else argument << false; argument.endStructure(); return argument; }
이 예에서 operator<<
함수와 operator>>
함수는 서로 다른 수의 읽기/쓰기를 생성할 수 있습니다. 이는 Qt D-Bus 유형 시스템을 혼동할 수 있으므로 피해야 합니다.
QDBusAbstractInterface, Qt D-Bus 타입 시스템, 어댑터 사용 및 qdbus_cast()도 참조하세요 .
멤버 타입 문서
enum QDBusArgument::ElementType
이 열거형은 인수가 보유한 요소의 유형을 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QDBusArgument::BasicType | 0 | QVariant 에서 이해하는 기본 요소입니다. 다음 유형이 기본 요소로 간주됩니다: bool, byte, short, ushort, int, uint, qint64, quint64, double, QString, QByteArray, QDBusObjectPath, QDBusSignature |
QDBusArgument::VariantType | 1 | 변형 요소 (QDBusVariant) |
QDBusArgument::ArrayType | 2 | 일반적으로 QList<T>로 표시되는 배열 요소입니다. 참고: QByteArray 및 연관 맵은 D-Bus 프로토콜이 배열로 전송하더라도 배열로 간주되지 않습니다. |
QDBusArgument::StructureType | 3 | QDateTime, QPoint 등과 같이 구조로 표현되는 사용자 정의 유형. |
QDBusArgument::MapType | 4 | QMap<키, 값> 또는 QHash<키, 값>과 같은 연관 컨테이너 |
QDBusArgument::MapEntryType | 5 | 연관 컨테이너에 있는 하나의 항목: 키와 값이 모두 하나의 맵 항목 유형을 형성합니다. |
QDBusArgument::UnknownType | -1 | 유형을 알 수 없거나 목록의 끝에 도달했습니다. |
currentType()도 참조하세요 .
멤버 함수 문서
QDBusArgument::QDBusArgument()
빈 QDBusArgument 인자를 구축합니다.
빈 QDBusArgument 객체는 읽기나 쓰기를 수행할 수 없습니다.
QDBusArgument::QDBusArgument(const QDBusArgument &other)
other QDBusArgument 객체의 복사본을 생성합니다.
따라서 이 시점부터 두 객체 모두 동일한 상태를 포함합니다. QDBusArguments는 명시적으로 공유되므로 어느 한 복사본을 수정하면 다른 복사본에도 영향을 미칩니다.
[noexcept]
QDBusArgument::~QDBusArgument()
이 QDBusArgument 개체와 관련된 리소스를 폐기합니다.
QVariant QDBusArgument::asVariant() const
현재 인수를 QVariant 형식으로 반환합니다. 기본 유형은 디코딩되어 QVariant 형식으로 반환되지만, 복잡한 유형의 경우 이 함수는 QDBusArgument 객체를 QVariant 형식으로 반환합니다. 인수를 디코딩하는 것은 호출자의 책임입니다(예: 인수의 asVariant()를 호출하는 등).
예를 들어 현재 인수가 INT32인 경우 이 함수는 QMetaType::Int 유형의 인수를 가진 QVariant 을 반환합니다. INT32 배열의 경우 QDBusArgument 을 포함하는 QVariant 을 반환합니다.
오류가 발생하거나 디코딩할 인수가 더 이상 없는 경우(즉, 인자 목록의 끝에 있는 경우) 이 함수는 잘못된 QVariant 을 반환합니다.
atEnd()도 참조하세요 .
bool QDBusArgument::atEnd() const
QDBusArgument 에서 더 이상 추출할 요소가 없는 경우 true
을 반환합니다. 이 함수는 일반적으로 beginMap() 및 beginArray()에서 반환된 QDBusArgument 객체에서 사용됩니다.
void QDBusArgument::beginArray() const
D-Bus 배열로 재귀하여 배열 요소를 추출할 수 있습니다.
이 함수는 다음 예제에서와 같이 operator>>
스트리밍 연산자에서 주로 사용됩니다:
// Extract a MyArray array of MyElement elements const QDBusArgument &operator>>(const QDBusArgument &argument, MyArray &myArray) { argument.beginArray(); myArray.clear(); while (!argument.atEnd()) { MyElement element; argument >> element; myArray.append(element); } argument.endArray(); return argument; }
역마샬링하려는 유형이 QList 또는 하나의 템플릿 파라미터를 취하는 Qt의 컨테이너 클래스인 경우, Qt D-Bus 에서 데이터 역마샬링 작업을 수행하는 일반 템플릿을 제공하므로 operator>>
함수를 선언할 필요가 없습니다. std::list
, std::vector
등과 같은 STL의 시퀀스 컨테이너에도 동일하게 적용됩니다.
atEnd(), beginStructure(), beginMap()도 참조하세요 .
void QDBusArgument::beginArray(QMetaType id)
메타 타입 id 의 요소를 추가하는 데 적합한 새 D-Bus 배열을 엽니다.
이 함수는 다음 예제에서와 같이 operator<<
스트리밍 연산자에서 주로 사용됩니다:
// Append an array of MyElement types QDBusArgument &operator<<(QDBusArgument &argument, const MyArray &myArray) { argument.beginArray(qMetaTypeId<MyElement>()); for (const auto &element : myArray) argument << element; argument.endArray(); return argument; }
마샬링하려는 타입이 QList 또는 하나의 템플릿 파라미터를 취하는 Qt의 컨테이너 클래스인 경우, Qt D-Bus 에서 데이터를 마샬링하는 작업을 수행하는 일반 템플릿을 제공하므로 operator<<
함수를 선언할 필요가 없습니다. std::list
, std::vector
등과 같은 STL의 시퀀스 컨테이너에도 동일하게 적용됩니다.
endArray(), beginStructure(), beginMap()도 참조하세요 .
void QDBusArgument::beginMap() const
지도의 요소를 추출할 수 있도록 D-Bus 맵으로 재귀합니다.
이 함수는 다음 예시와 같이 operator>>
스트리밍 연산자에서 주로 사용됩니다:
// Extract a MyDictionary map that associates integers to MyElement items const QDBusArgument &operator>>(const QDBusArgument &argument, MyDictionary &myDict) { argument.beginMap(); myDict.clear(); while (!argument.atEnd()) { int key; MyElement value; argument.beginMapEntry(); argument >> key >> value; argument.endMapEntry(); myDict.insert(key, value); } argument.endMap(); return argument; }
역마샬링하려는 유형이 QMap 또는 QHash 인 경우 Qt D-Bus 에서 데이터 역마샬링 작업을 수행하는 일반 템플릿을 제공하므로 operator>>
함수를 선언할 필요가 없습니다.
endMap(), beginStructure(), beginArray() 및 beginMapEntry()도 참조하세요 .
void QDBusArgument::beginMap(QMetaType keyMetaType, QMetaType valueMetaType)
요소를 추가하기에 적합한 새 D-Bus 맵을 엽니다. 맵은 한 항목(키)을 다른 항목(값)에 연결하는 컨테이너로, Qt의 QMap 또는 QHash 과 같이 맵의 키와 값 메타 유형의 ID는 각각 keyMetaType 및 valueMetaType 에 전달해야 합니다.
이 함수는 다음 예시와 같이 operator<<
스트리밍 연산자에서 주로 사용됩니다:
// Append a dictionary that associates ints to MyValue types QDBusArgument &operator<<(QDBusArgument &argument, const MyDictionary &myDict) { argument.beginMap(QMetaType::fromType<int>(), QMetaType::fromType<MyValue>()); MyDictionary::const_iterator i; for (i = myDict.cbegin(); i != myDict.cend(); ++i) { argument.beginMapEntry(); argument << i.key() << i.value(); argument.endMapEntry(); } argument.endMap(); return argument; }
Qt D-Bus 에서 데이터 마샬링 작업을 수행하는 일반 템플릿을 제공하기 때문에 QHash 또는 std::map과 같은 연관 컨테이너에는 일반적으로 operator<<
또는 operator>>
함수를 제공할 필요가 없습니다.
endMap(), beginStructure(), beginArray() 및 beginMapEntry()도 참조하세요 .
void QDBusArgument::beginMapEntry()
키 및 값 항목을 추가하기에 적합한 D-Bus 맵 항목을 엽니다. 이 함수는 beginMap()로 지도를 연 경우에만 유효합니다.
이 함수의 사용 예는 beginMap()를 참조하세요.
endMapEntry() 및 beginMap()도 참조하세요 .
void QDBusArgument::beginMapEntry() const
D-Bus 맵 항목으로 재귀하여 키와 값 쌍을 추출할 수 있습니다.
이 함수가 일반적으로 어떻게 사용되는지에 대한 예는 beginMap()를 참조하세요.
endMapEntry() 및 beginMap()도 참조하세요 .
void QDBusArgument::beginStructure()
새 인수를 추가하기에 적합한 새 D-Bus 구조를 엽니다.
이 함수는 다음 예제에서와 같이 operator<<
스트리밍 연산자에서 주로 사용됩니다:
QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct) { argument.beginStructure(); argument << myStruct.member1 << myStruct.member2; argument.endStructure(); return argument; }
구조체는 다른 구조체를 포함할 수 있으므로 다음 코드도 유효합니다:
QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct) { argument.beginStructure(); argument << myStruct.member1 << myStruct.member2; argument.beginStructure(); argument << myStruct.member3.subMember1 << myStruct.member3.subMember2; argument.endStructure(); argument << myStruct.member4; argument.endStructure(); return argument; }
endStructure(), beginArray() 및 beginMap()도 참조하세요 .
void QDBusArgument::beginStructure() const
요소 추출에 적합한 D-Bus 구조를 엽니다.
이 함수는 다음 예시와 같이 operator>>
스트리밍 연산자에서 주로 사용됩니다:
const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &myStruct) { argument.beginStructure(); argument >> myStruct.member1 >> myStruct.member2 >> myStruct.member3; argument.endStructure(); return argument; }
endStructure(), beginArray() 및 beginMap()도 참조하세요 .
QDBusArgument::ElementType QDBusArgument::currentType() const
현재 엘리먼트 타입의 분류를 반환합니다. 유형을 디코딩하는 데 오류가 발생하거나 인수의 끝에 있는 경우 이 함수는 QDBusArgument::UnknownType 을 반환합니다.
이 함수는 인수를 마샬링할 때만 의미가 있습니다. 마샬링 중에 사용하면 항상 UnknownType 을 반환합니다.
void QDBusArgument::endArray()
beginArray()로 열린 D-Bus 배열을 닫습니다. 이 함수는 beginArray() 호출 횟수와 동일하게 호출해야 합니다.
beginArray(), endStructure() 및 endMap()도 참조하세요 .
void QDBusArgument::endArray() const
D-Bus 배열을 닫고 배열 뒤의 다음 요소를 추출할 수 있도록 합니다.
beginArray()도 참조하세요 .
void QDBusArgument::endMap()
beginMap()로 연 D-Bus 지도를 닫습니다. 이 함수는 beginMap() 호출 횟수와 동일한 횟수로 호출해야 합니다.
beginMap(), endStructure() 및 endArray()도 참조하세요 .
void QDBusArgument::endMap() const
D-Bus 맵을 닫고 맵 뒤의 다음 요소를 추출할 수 있도록 합니다.
beginMap()도 참조하세요 .
void QDBusArgument::endMapEntry()
beginMapEntry()로 연 D-Bus 맵 항목을 닫습니다. 이 함수는 beginMapEntry()를 호출하는 횟수와 동일하게 호출해야 합니다.
beginMapEntry()도 참조하세요 .
void QDBusArgument::endMapEntry() const
D-Bus 맵 항목을 닫고 맵에서 다음 요소 추출을 허용합니다.
beginMapEntry()도 참조하세요 .
void QDBusArgument::endStructure()
beginStructure()로 열린 D-Bus 구조를 닫습니다. 이 함수는 beginStructure()가 호출되는 횟수와 동일하게 호출되어야 합니다.
beginStructure(), endArray() 및 endMap()도 참조하세요 .
void QDBusArgument::endStructure() const
D-Bus 구조를 닫고 구조 뒤의 다음 요소를 추출할 수 있도록 합니다.
beginStructure()도 참조하세요 .
[noexcept]
void QDBusArgument::swap(QDBusArgument &other)
이 인수를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
QDBusArgument &QDBusArgument::operator<<(uchar arg)
BYTE
유형의 원시 값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(bool arg)
이것은 오버로드된 함수입니다.
BOOLEAN
유형의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(const QByteArray &arg)
이 함수는 과부하된 함수입니다.
arg 에서 제공한 QByteArray 을 ARRAY of BYTE
로 D-Bus 스트림에 추가합니다.
QStringList 와 QByteArray 는 Qt 응용 프로그램에서 널리 사용되기 때문에 QDBusArgument 에서 직접 지원되는 유일한 두 가지 비 프리미티브 형입니다.
다른 배열은 Qt D-Bus 의 복합형을 통해 지원됩니다.
QDBusArgument &QDBusArgument::operator<<(const QDBusVariant &arg)
이것은 오버로드된 함수입니다.
VARIANT
유형의 기본값 arg 을 D-Bus 스트림에 추가합니다.
D-Bus 변형 유형은 다른 변형을 포함한 모든 유형을 포함할 수 있습니다. Qt QVariant 유형과 유사합니다.
QDBusArgument &QDBusArgument::operator<<(const QString &arg)
이 함수는 오버로드된 함수입니다.
STRING
(유니코드 문자열) 타입의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(const QStringList &arg)
이 함수는 과부하된 함수입니다.
arg 에서 제공한 QStringList 을 ARRAY of STRING
로 D-Bus 스트림에 추가합니다.
QStringList 와 QByteArray 는 Qt 응용 프로그램에서 널리 사용되기 때문에 QDBusArgument 에서 직접 지원되는 유일한 두 가지 비 프리미티브 형입니다.
다른 배열은 Qt D-Bus 의 복합형을 통해 지원됩니다.
QDBusArgument &QDBusArgument::operator<<(double arg)
이것은 오버로드된 함수입니다.
DOUBLE
(배정밀도 부동 소수점) 타입의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(int arg)
이것은 오버로드된 함수입니다.
INT32
유형의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(qlonglong arg)
이것은 오버로드된 함수입니다.
INT64
유형의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(qulonglong arg)
이것은 오버로드된 함수입니다.
UINT64
유형의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(short arg)
이것은 오버로드된 함수입니다.
INT16
유형의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(uint arg)
이것은 오버로드된 함수입니다.
UINT32
유형의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator<<(ushort arg)
이것은 오버로드된 함수입니다.
UINT16
유형의 기본값 arg 을 D-Bus 스트림에 추가합니다.
QDBusArgument &QDBusArgument::operator=(const QDBusArgument &other)
other QDBusArgument 객체를 이 객체로 복사합니다.
따라서 이 시점부터 두 객체 모두 동일한 상태를 포함합니다. QDBusArguments는 명시적으로 공유되므로 어느 한 복사본을 수정하면 다른 복사본에도 영향을 미칩니다.
const QDBusArgument &QDBusArgument::operator>>(uchar &arg) const
D-Bus 스트림에서 BYTE
타입의 D-Bus 기본 인수 하나를 추출하여 arg 에 넣습니다.
const QDBusArgument &QDBusArgument::operator>>(QByteArray &arg) const
이 함수는 오버로드된 함수입니다.
D-Bus 스트림에서 바이트 배열을 추출하여 QByteArray 로 반환합니다.
QStringList 와 QByteArray 는 Qt 응용 프로그램에서 널리 사용되기 때문에 QDBusArgument 에서 직접 지원하는 유일한 두 가지 비 프리미티브 유형입니다.
다른 배열은 Qt D-Bus 의 복합 형을 통해 지원됩니다.
const QDBusArgument &QDBusArgument::operator>>(QDBusVariant &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 VARIANT
타입의 D-Bus 기본 인자 하나를 추출합니다.
D-Bus 변형 형은 다른 변형을 포함한 모든 형을 포함할 수 있습니다. Qt QVariant 형과 유사합니다.
변형에 QDBusArgument 에서 직접 지원하지 않는 형이 포함된 경우 반환된 QDBusVariant 의 값은 다른 QDBusArgument 을 포함합니다. 이를 다른 유형으로 추가 역변환하는 것은 사용자의 책임입니다.
const QDBusArgument &QDBusArgument::operator>>(QString &arg) const
이 함수는 오버로드된 함수입니다.
D-Bus 스트림에서 STRING
(유니코드 문자 문자열) 타입의 D-Bus 기본 인수 하나를 추출합니다.
const QDBusArgument &QDBusArgument::operator>>(QStringList &arg) const
이 함수는 오버로드된 함수입니다.
D-Bus 스트림에서 문자열 배열을 추출하여 QStringList 로 반환합니다.
QStringList 와 QByteArray 는 Qt 응용 프로그램에서 널리 사용되기 때문에 QDBusArgument 에서 직접 지원하는 유일한 두 가지 비 프리미티브 유형입니다.
다른 배열은 Qt D-Bus 의 복합 형을 통해 지원됩니다.
const QDBusArgument &QDBusArgument::operator>>(bool &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 BOOLEAN
타입의 D-Bus 프리미티브 인자 하나를 추출합니다.
const QDBusArgument &QDBusArgument::operator>>(double &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 DOUBLE
(배정밀도 부동 소수점) 타입의 D-Bus 프리미티브 인자 하나를 추출합니다.
const QDBusArgument &QDBusArgument::operator>>(int &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 INT32
타입의 D-Bus 프리미티브 인자 하나를 추출합니다.
const QDBusArgument &QDBusArgument::operator>>(qlonglong &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 INT64
타입의 D-Bus 프리미티브 인자 하나를 추출합니다.
const QDBusArgument &QDBusArgument::operator>>(qulonglong &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 UINT64
타입의 D-Bus 프리미티브 인자 하나를 추출합니다.
const QDBusArgument &QDBusArgument::operator>>(short &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 INT16
타입의 D-Bus 프리미티브 인자 하나를 추출합니다.
const QDBusArgument &QDBusArgument::operator>>(uint &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 UINT32
타입의 D-Bus 프리미티브 인자 하나를 추출합니다.
const QDBusArgument &QDBusArgument::operator>>(ushort &arg) const
이것은 오버로드된 함수입니다.
D-Bus 스트림에서 UINT16
타입의 D-Bus 프리미티브 인자 하나를 추출합니다.
관련 비회원
template <typename T> QMetaType qDBusRegisterMetaType()
Qt D-Bus 타입 시스템과 Qt meta-type system 에 T
을 등록합니다(아직 등록되지 않은 경우).
타입을 등록하려면 Q_DECLARE_METATYPE() 매크로를 사용하여 메타 타입으로 선언한 다음 다음 예제에서와 같이 등록해야 합니다:
#include <QDBusMetaType> qDBusRegisterMetaType<MyClass>();
T
가 Qt의 컨테이너 클래스 중 하나가 아니라면 T
와 QDBusArgument 사이의 operator<<
과 operator>>
스트리밍 연산자가 이미 선언되어 있어야 합니다. 이러한 타입을 선언하는 방법에 대한 자세한 내용은 Qt D-Bus 타입 시스템 페이지를 참조하십시오.
이 함수는 해당 타입에 대한 Qt 메타 타입 ID를 반환합니다( qRegisterMetaType()에서 반환되는 값과 동일).
참고: 스트리밍 가능한 유형( QList, QHash 또는 QMap 컨테이너 포함)을 상속하는 T
이 사용자 정의 operator<<
및 operator>>
를 제공하지 않고도 스트리밍할 수 있는 기능은 기본 클래스를 제외한 T
의 모든 것을 무시하므로 Qt 5.7부터 더 이상 사용되지 않습니다. 진단이 없습니다. 스트리밍하려는 모든 유형에 대해 항상 이러한 연산자를 제공해야 하며, 베이스 클래스에 대한 Qt 제공 스트림 연산자에 의존해서는 안 됩니다.
참고: 이 함수는 스레드 안전합니다.
Qt D-Bus 타입 시스템, qRegisterMetaType() 및 QMetaType 를참조하십시오 .
template <typename T> T qdbus_cast(const QDBusArgument &arg)
arg 의 내용을 T
유형으로 디마샬링하려고 시도합니다. 예를 들어
MyType item = qdbus_cast<Type>(argument);
다음과 같다는 점에 유의하세요:
MyType item; argument >> item;
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.