1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
5#ifndef QDBUSUNIXFILEDESCRIPTOR_H
6#define QDBUSUNIXFILEDESCRIPTOR_H
7
8#include <QtDBus/qtdbusglobal.h>
9#include <QtCore/qshareddata.h>
10
11#ifndef QT_NO_DBUS
12
13#include <utility>
14
15QT_BEGIN_NAMESPACE
16
17
18class QDBusUnixFileDescriptorPrivate;
19
20class Q_DBUS_EXPORT QDBusUnixFileDescriptor
21{
22public:
23 QDBusUnixFileDescriptor();
24 explicit QDBusUnixFileDescriptor(int fileDescriptor);
25 QDBusUnixFileDescriptor(const QDBusUnixFileDescriptor &other);
26 QDBusUnixFileDescriptor &operator=(QDBusUnixFileDescriptor &&other) noexcept { swap(other); return *this; }
27 QDBusUnixFileDescriptor &operator=(const QDBusUnixFileDescriptor &other);
28 ~QDBusUnixFileDescriptor();
29
30 void swap(QDBusUnixFileDescriptor &other) noexcept
31 { d.swap(other&: other.d); }
32
33 bool isValid() const;
34
35 int fileDescriptor() const;
36 void setFileDescriptor(int fileDescriptor);
37
38 void giveFileDescriptor(int fileDescriptor);
39 int takeFileDescriptor();
40
41 static bool isSupported();
42
43protected:
44 typedef QExplicitlySharedDataPointer<QDBusUnixFileDescriptorPrivate> Data;
45 Data d;
46};
47
48Q_DECLARE_SHARED(QDBusUnixFileDescriptor)
49
50QT_END_NAMESPACE
51
52QT_DECL_METATYPE_EXTERN(QDBusUnixFileDescriptor, Q_DBUS_EXPORT)
53
54#endif // QT_NO_DBUS
55#endif // QDBUSUNIXFILEDESCRIPTOR_H
56

source code of qtbase/src/dbus/qdbusunixfiledescriptor.h