PySide6.QtDBus.QDBusUnixFileDescriptor¶
- class QDBusUnixFileDescriptor¶
The
QDBusUnixFileDescriptorclass holds one Unix file descriptor. More…Synopsis¶
Methods¶
def
__init__()def
fileDescriptor()def
isValid()def
swap()
Static functions¶
def
isSupported()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description¶
The
QDBusUnixFileDescriptorclass is used to hold one Unix file descriptor for use with the Qt D-Bus module. This allows applications to send and receive Unix file descriptors over the D-Bus connection, mapping automatically to the D-Bus type ‘h’.Objects of type QDBusUnixFileDescriptors can be used also as parameters in signals and slots that get exported to D-Bus by registering with
registerObject.QDBusUnixFileDescriptordoes not take ownership of the file descriptor. Instead, it will use the Unix system calldup(2)to make a copy of the file descriptor. This file descriptor belongs to theQDBusUnixFileDescriptorobject and should not be stored or closed by the user. Instead, you should make your own copy if you need that.Availability¶
Unix file descriptor passing is not available in all D-Bus connections. This feature is present with D-Bus library and bus daemon version 1.4 and upwards on Unix systems. Qt D-Bus automatically enables the feature if such a version was found at compile-time and run-time.
To verify that your connection does support passing file descriptors, check if the
UnixFileDescriptorPassingcapability is set withconnectionCapabilities(). If the flag is not active, then you will not be able to make calls to methods that haveQDBusUnixFileDescriptoras arguments or even embed such a type in a variant. You will also not receive calls containing that type.Note also that remote applications may not have support for Unix file descriptor passing. If you make a D-Bus to a remote application that cannot receive such a type, you will receive an error reply. If you try to send a signal containing a D-Bus file descriptor or return one from a method call, the message will be silently dropped.
Even if the feature is not available,
QDBusUnixFileDescriptorwill continue to operate, so code need not have compile-time checks for the availability of this feature.On non-Unix systems,
QDBusUnixFileDescriptorwill always report an invalid state andisSupported()will return false.See also
ConnectionCapabilitiesconnectionCapabilities()- __init__()¶
Constructs a
QDBusUnixFileDescriptorwithout a wrapped file descriptor. This is equivalent to constructing the object with an invalid file descriptor (like -1).See also
- __init__(other)
- Parameters:
other –
QDBusUnixFileDescriptor
Constructs a
QDBusUnixFileDescriptorobject by copyingother.- __init__(fileDescriptor)
- Parameters:
fileDescriptor – int
Constructs a
QDBusUnixFileDescriptorobject by copying thefileDescriptorparameter. The original file descriptor is not touched and must be closed by the user.Note that the value returned by
fileDescriptor()will be different from thefileDescriptorparameter passed.If the
fileDescriptorparameter is not valid,isValid()will return false andfileDescriptor()will return -1.See also
- fileDescriptor()¶
- Return type:
int
Returns the Unix file descriptor contained by this
QDBusUnixFileDescriptorobject. An invalid file descriptor is represented by the value -1.Note that the file descriptor returned by this function is owned by the
QDBusUnixFileDescriptorobject and must not be stored past the lifetime of this object. It is ok to use it while this object is valid, but if one wants to store it for longer use, the file descriptor should be cloned using the Unixdup(2),dup2(2)ordup3(2)functions.See also
- giveFileDescriptor(fileDescriptor)¶
- Parameters:
fileDescriptor – int
- static isSupported()¶
- Return type:
bool
Returns
trueif Unix file descriptors are supported on this platform. In other words, this function returnstrueif this is a Unix platform.Note that
QDBusUnixFileDescriptorcontinues to operate even if this function returnsfalse. The only difference is that theQDBusUnixFileDescriptorobjects will always be in theisValid()== false state andfileDescriptor()will always return -1. The class will not consume any operating system resources.- isValid()¶
- Return type:
bool
Returns
trueif this Unix file descriptor is valid. A valid Unix file descriptor is not -1.See also
- setFileDescriptor(fileDescriptor)¶
- Parameters:
fileDescriptor – int
Sets the file descriptor that this
QDBusUnixFileDescriptorobject holds to a copy offileDescriptor. The original file descriptor is not touched and must be closed by the user.Note that the value returned by
fileDescriptor()will be different from thefileDescriptorparameter passed.If the
fileDescriptorparameter is not valid,isValid()will return false andfileDescriptor()will return -1.See also
- swap(other)¶
- Parameters:
other –
QDBusUnixFileDescriptor
Swaps this file descriptor instance with
other. This operation is very fast and never fails.- takeFileDescriptor()¶
- Return type:
int