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// Qt-Security score:significant reason:default
4
5
6#ifndef QDBUSUNIXFILEDESCRIPTOR_H
7#define QDBUSUNIXFILEDESCRIPTOR_H
8
9#include <QtDBus/qtdbusglobal.h>
10#include <QtCore/qshareddata.h>
11
12#ifndef QT_NO_DBUS
13
14#include <utility>
15
16QT_BEGIN_NAMESPACE
17
18
19class QDBusUnixFileDescriptorPrivate;
20
21class Q_DBUS_EXPORT QDBusUnixFileDescriptor
22{
23public:
24 QDBusUnixFileDescriptor();
25 explicit QDBusUnixFileDescriptor(int fileDescriptor);
26 QDBusUnixFileDescriptor(const QDBusUnixFileDescriptor &other);
27 QDBusUnixFileDescriptor &operator=(QDBusUnixFileDescriptor &&other) noexcept { swap(other); return *this; }
28 QDBusUnixFileDescriptor &operator=(const QDBusUnixFileDescriptor &other);
29 ~QDBusUnixFileDescriptor();
30
31 void swap(QDBusUnixFileDescriptor &other) noexcept
32 { d.swap(other&: other.d); }
33
34 bool isValid() const;
35
36 int fileDescriptor() const;
37 void setFileDescriptor(int fileDescriptor);
38
39 void giveFileDescriptor(int fileDescriptor);
40 int takeFileDescriptor();
41
42 static bool isSupported();
43
44protected:
45 typedef QExplicitlySharedDataPointer<QDBusUnixFileDescriptorPrivate> Data;
46 Data d;
47};
48
49Q_DECLARE_SHARED(QDBusUnixFileDescriptor)
50
51QT_END_NAMESPACE
52
53QT_DECL_METATYPE_EXTERN(QDBusUnixFileDescriptor, Q_DBUS_EXPORT)
54
55#endif // QT_NO_DBUS
56#endif // QDBUSUNIXFILEDESCRIPTOR_H
57

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