QDBusUnixFileDescriptor Class
QDBusUnixFileDescriptor 클래스는 하나의 유닉스 파일 기술자를 보유합니다. 더 보기...
헤더: | #include <QDBusUnixFileDescriptor> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
- 상속된 멤버를 포함한 모든 멤버의 목록
- QDBusUnixFileDescriptor는 암시적으로 공유되는 클래스의 일부입니다.
공용 함수
QDBusUnixFileDescriptor() | |
QDBusUnixFileDescriptor(int fileDescriptor) | |
QDBusUnixFileDescriptor(const QDBusUnixFileDescriptor &other) | |
~QDBusUnixFileDescriptor() | |
int | fileDescriptor() const |
bool | isValid() const |
void | setFileDescriptor(int fileDescriptor) |
void | swap(QDBusUnixFileDescriptor &other) |
QDBusUnixFileDescriptor & | operator=(QDBusUnixFileDescriptor &&other) |
QDBusUnixFileDescriptor & | operator=(const QDBusUnixFileDescriptor &other) |
정적 공용 멤버
bool | isSupported() |
상세 설명
QDBusUnixFileDescriptor 클래스는 Qt D-Bus 모듈과 함께 사용할 Unix 파일 기술자 하나를 보유하는 데 사용됩니다. 이를 통해 애플리케이션은 D-Bus 연결을 통해 Unix 파일 기술자를 보내고 받을 수 있으며, D-Bus 유형 'h'에 자동으로 매핑됩니다.
QDBusUnixFileDescriptors 유형의 객체는 QDBusConnection::registerObject 에 등록하여 D-Bus로 내보내는 신호 및 슬롯의 매개 변수로도 사용할 수 있습니다.
QDBusUnixFileDescriptor는 파일 기술자의 소유권을 가지지 않습니다. 대신 Unix 시스템 호출 dup(2)
을 사용하여 파일 기술자의 복사본을 만듭니다. 이 파일 기술자는 QDBusUnixFileDescriptor 객체에 속하며 사용자가 저장하거나 닫아서는 안 됩니다. 대신 필요한 경우 직접 복사본을 만들어야 합니다.
가용성
Unix 파일 기술자 전달은 모든 D-Bus 연결에서 사용할 수 있는 것은 아닙니다. 이 기능은 Unix 시스템에서 D-Bus 라이브러리 및 버스 데몬 버전 1.4 이상에 있습니다. 컴파일 타임 및 런타임에 해당 버전이 발견되면 Qt D-Bus 에서 자동으로 기능을 활성화합니다.
연결이 파일 설명자 전달을 지원하는지 확인하려면 QDBusConnection::connectionCapabilities()로 QDBusConnection::UnixFileDescriptorPassing 기능이 설정되어 있는지 확인하세요. 플래그가 활성화되어 있지 않으면 QDBusUnixFileDescriptor를 인수로 사용하는 메서드를 호출하거나 이러한 유형을 변형에 포함할 수 없습니다. 또한 해당 유형이 포함된 호출도 수신되지 않습니다.
또한 원격 응용 프로그램에서 유닉스 파일 기술자 전달을 지원하지 않을 수도 있습니다. 이러한 유형을 수신할 수 없는 원격 애플리케이션에 D-Bus를 보내면 오류 응답을 받게 됩니다. D-Bus 파일 기술자가 포함된 신호를 보내거나 메서드 호출에서 파일 기술자를 반환하려고 하면 메시지가 자동으로 삭제됩니다.
이 기능을 사용할 수 없더라도 QDBusUnixFileDescriptor는 계속 작동하므로 코드에서 이 기능의 사용 가능 여부를 컴파일 타임에 검사할 필요가 없습니다.
비유닉스 시스템에서 QDBusUnixFileDescriptor는 항상 유효하지 않은 상태를 보고하고 QDBusUnixFileDescriptor::isSupported()는 false를 반환합니다.
QDBusConnection::ConnectionCapabilities 및 QDBusConnection::connectionCapabilities()도 참조하십시오 .
멤버 함수 문서
QDBusUnixFileDescriptor::QDBusUnixFileDescriptor()
래핑된 파일 기술자없이 QDBusUnixFileDescriptor를 구축합니다. 이는 잘못된 파일 기술자(예: -1)로 객체를 구성하는 것과 같습니다.
fileDescriptor() 및 isValid()도 참조하십시오 .
[explicit]
QDBusUnixFileDescriptor::QDBusUnixFileDescriptor(int fileDescriptor)
fileDescriptor 파라미터를 복사하여 QDBusUnixFileDescriptor 객체를 구축합니다. 원본 파일 기술자는 건드리지 않으며 사용자가 닫아야 합니다.
fileDescriptor()에서 반환되는 값은 전달된 fileDescriptor 매개변수와 다를 수 있습니다.
fileDescriptor 매개 변수가 유효하지 않은 경우 isValid()는 false를 반환하고 fileDescriptor()는 -1을 반환합니다.
setFileDescriptor() 및 fileDescriptor()도 참조하세요 .
QDBusUnixFileDescriptor::QDBusUnixFileDescriptor(const QDBusUnixFileDescriptor &other)
other 을 복사하여 QDBusUnixFileDescriptor 객체를 생성합니다.
[noexcept]
QDBusUnixFileDescriptor::~QDBusUnixFileDescriptor()
이 QDBusUnixFileDescriptor 객체를 삭제하고 이 객체에 포함된 Unix 파일 설명자를 폐기합니다.
int QDBusUnixFileDescriptor::fileDescriptor() const
이 QDBusUnixFileDescriptor 객체에 포함된 유닉스 파일 기술자를 반환합니다. 잘못된 파일 기술자는 -1 값으로 표시됩니다.
이 함수가 반환하는 파일 기술자는 QDBusUnixFileDescriptor 객체가 소유하며 이 객체의 수명이 지나면 저장해서는 안 됩니다. 이 객체가 유효할 때 사용해도 괜찮지만 더 오래 사용하기 위해 저장하려면 Unix dup(2)
, dup2(2)
또는 dup3(2)
함수를 사용하여 파일 설명자를 복제해야 합니다.
setFileDescriptor() 및 isValid()도 참조하세요 .
[static]
bool QDBusUnixFileDescriptor::isSupported()
이 플랫폼에서 Unix 파일 설명자가 지원되는 경우 true
을 반환합니다. 즉, 이 함수는 Unix 플랫폼인 경우 true
을 반환합니다.
이 함수가 false
을 반환하더라도 QDBusUnixFileDescriptor 은 계속 작동합니다. 유일한 차이점은 QDBusUnixFileDescriptor 객체는 항상 isValid() == false 상태에 있고 fileDescriptor()는 항상 -1을 반환한다는 것입니다. 이 클래스는 운영 체제 리소스를 소비하지 않습니다.
bool QDBusUnixFileDescriptor::isValid() const
이 유닉스 파일 기술자가 유효한 경우 true
을 반환합니다. 유효한 유닉스 파일 기술자는 -1이 아닙니다.
fileDescriptor()도 참조하세요 .
void QDBusUnixFileDescriptor::setFileDescriptor(int fileDescriptor)
이 QDBusUnixFileDescriptor 객체가 보유한 파일 설명자를 fileDescriptor 의 복사본으로 설정합니다. 원본 파일 설명자는 건드리지 않으므로 사용자가 닫아야 합니다.
fileDescriptor()에서 반환되는 값은 전달된 fileDescriptor 매개변수와 다를 수 있습니다.
fileDescriptor 매개 변수가 유효하지 않은 경우 isValid()는 false를 반환하고 fileDescriptor()는 -1을 반환합니다.
isValid() 및 fileDescriptor()도 참조하세요 .
[noexcept]
void QDBusUnixFileDescriptor::swap(QDBusUnixFileDescriptor &other)
이 파일 설명자 인스턴스를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
[noexcept]
QDBusUnixFileDescriptor &QDBusUnixFileDescriptor::operator=(QDBusUnixFileDescriptor &&other)
이동 - other 을 이 QDBusUnixFileDescriptor 에 할당합니다.
QDBusUnixFileDescriptor &QDBusUnixFileDescriptor::operator=(const QDBusUnixFileDescriptor &other)
other QDBusUnixFileDescriptor 객체에서 유닉스 파일 디스크립터를 복사합니다. 현재 객체에 파일 기술자가 포함되어 있으면 이전에 올바르게 처리됩니다.
© 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.