QDBusUnixFileDescriptor Class Reference

[QtDBus module]

该QDBusUnixFileDescriptor类各执一份的Unix文件描述符。More…

Methods

  • __init__ (self)
  • __init__ (self, int fileDescriptor)
  • __init__ (self, QDBusUnixFileDescriptor other)
  • int fileDescriptor (self)
  • bool isValid (self)
  • setFileDescriptor (self, int fileDescriptor)

Static Methods

  • bool isSupported ()

Detailed Description

该QDBusUnixFileDescriptor类各执一份的Unix文件描述符。

该QDBusUnixFileDescriptor类用于容纳一个Unix的文件描述符与使用QtDBus模块。这使得应用程序可以自动发送和接收的Unix文件描述符在D-Bus的连接,映射到D -总线类型的“h” 。

也可以使用如在信号和通过用QDBusConnection.registerObject注册得到出口到D-总线时隙参数类型QDBusUnixFileDescriptors的对象。

QDBusUnixFileDescriptor不走文件描述符的所有权。相反,它将使用Unix系统调用dup(2)使文件描述符的副本。此文件描述符属于QDBusUnixFileDescriptor对象,不应该被存储或由用户关闭。相反,你应该让自己的副本,如果你需要的。

Availability

Unix的文件描述符的逝世是不是适用于所有的D-Bus连接。此功能目前与D-Bus的图书馆和总线守护程序版本1.4及以上的Unix系统。QtDBus自动启用该功能,如果这样的版本被发现在编译时和运行时。

要验证您的连接不支持通过文件描述符,检查QDBusConnection.UnixFileDescriptorPassing功能设置与QDBusConnection.connectionCapabilities( ) 。如果标志不活跃,那么你将无法做出有QDBusUnixFileDescriptor作为参数,甚至在一个变体中嵌入这种类型的调用方法。您也不会收到包含该类型的呼叫。

另请注意,远程应用程序可能无法让Unix文件描述符传递的支持。如果你犯了一个D-Bus的到无法接受这样一种类型的远程应用程序,您将收到一条错误的答复。如果您尝试发送一个含有D-Bus的文件描述符的信号,或从一个方法调用返回之一,该消息将被丢弃。

即使功能不可用, QDBusUnixFileDescriptor将继续运行,所以代码不需要有编译时检查此功能的可用性。

在非Unix系统, QDBusUnixFileDescriptor将始终报告无效状态,QDBusUnixFileDescriptor.isSupported( )将返回False 。


Method Documentation

  1. QDBusUnixFileDescriptor.__init__ (self)

构造一个QDBusUnixFileDescriptor没有包装的文件描述符。这等效于一个无效的文件描述符(如-1)构成的对象。

See also fileDescriptor()和isValid( ) 。

  1. QDBusUnixFileDescriptor.__init__ (self, int fileDescriptor)

构造一个QDBusUnixFileDescriptor通过复制的对象fileDescriptor参数。原始文件的描述符是不被用户触摸并必须关闭。

请注意,返回的值由fileDescriptor()将来自不同fileDescriptor参数传递。

如果fileDescriptor参数是无效的,isValid( )将返回False,fileDescriptor( )将返回-1 。

See also setFileDescriptor()和fileDescriptor( ) 。

  1. QDBusUnixFileDescriptor.__init__ (self, QDBusUnixFileDescriptor other)

构造一个QDBusUnixFileDescriptor通过复制对象other

  1. int QDBusUnixFileDescriptor.fileDescriptor (self)

返回包含此Unix的文件描述符QDBusUnixFileDescriptor对象。无效的文件描述符由值-1表示。

请注意,这个函数返回的文件描述符是由拥有QDBusUnixFileDescriptor对象,并且必须不被保存过去的这个对象的生存期。它是确定使用它,而这个对象是有效的,但如果一个人想存放更长的使用,文件描述符应使用Unix的克隆dup(2)dup2(2) or dup3(2)功能。

See also setFileDescriptor()和isValid( ) 。

  1. bool QDBusUnixFileDescriptor.isSupported ()

如果在Unix文件描述符都在这个平台上支持,则返回True 。换句话说,该函数返回True,如果这是一个Unix平台上。

需要注意的是QDBusUnixFileDescriptor继续运行,即使这个函数返回False 。唯一的区别在于QDBusUnixFileDescriptor对象将始终处于isValid( ) == False状态和fileDescriptor( )将总是返回-1 。本课程将不消耗任何作业系统资源。

  1. bool QDBusUnixFileDescriptor.isValid (self)

返回True如果Unix的文件描述符是有效的。一个有效的Unix文件描述符不是-1 。

See also fileDescriptor( ) 。

  1. QDBusUnixFileDescriptor.setFileDescriptor (self, int fileDescriptor)

设置文件描述符,这QDBusUnixFileDescriptor对象保存到副本fileDescriptor。原始文件的描述符是不被用户触摸并必须关闭。

请注意,返回的值由fileDescriptor()将来自不同fileDescriptor参数传递。

如果fileDescriptor参数是无效的,isValid( )将返回False,fileDescriptor( )将返回-1 。

See also isValid()和fileDescriptor( ) 。