9# include <private/qcore_unix_p.h>
16QT_IMPL_METATYPE_EXTERN(QDBusUnixFileDescriptor)
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
81
82
83
86
87
88
90class QDBusUnixFileDescriptorPrivate :
public QSharedData {
92 QDBusUnixFileDescriptorPrivate() : fd(-1) { }
93 QDBusUnixFileDescriptorPrivate(
const QDBusUnixFileDescriptorPrivate &other)
94 : QSharedData(other), fd(-1)
96 ~QDBusUnixFileDescriptorPrivate();
101QT_DEFINE_QESDP_SPECIALIZATION_DTOR(QDBusUnixFileDescriptorPrivate)
104
105
106
107
108
109
110QDBusUnixFileDescriptor::QDBusUnixFileDescriptor()
116
117
118
119
120
121
122
123
124
125
126
127
128QDBusUnixFileDescriptor::QDBusUnixFileDescriptor(
int fileDescriptor)
131 if (fileDescriptor != -1)
132 setFileDescriptor(fileDescriptor);
136
137
138QDBusUnixFileDescriptor::QDBusUnixFileDescriptor(
const QDBusUnixFileDescriptor &other)
144
145
146
147
148QDBusUnixFileDescriptor &QDBusUnixFileDescriptor::operator=(
const QDBusUnixFileDescriptor &other)
151 d.operator=(other.d);
156
157
158
159
162
163
164QDBusUnixFileDescriptor::~QDBusUnixFileDescriptor()
169
170
171
172
175
176
177
178
179
180bool QDBusUnixFileDescriptor::isValid()
const
182 return d ? d->fd.loadRelaxed() != -1 :
false;
186
187
188
189
190
191
192
193
194
195
196
197
198int QDBusUnixFileDescriptor::fileDescriptor()
const
200 return d ? d->fd.loadRelaxed() : -1;
209
210
211
212
213
214
215
216
217
218bool QDBusUnixFileDescriptor::isSupported()
224
225
226
227
228
229
230
231
232
233
234
235
236void QDBusUnixFileDescriptor::setFileDescriptor(
int fileDescriptor)
238 if (fileDescriptor != -1)
239 giveFileDescriptor(qt_safe_dup(fileDescriptor));
243
244
245
246
247
248void QDBusUnixFileDescriptor::giveFileDescriptor(
int fileDescriptor)
255 d =
new QDBusUnixFileDescriptorPrivate;
257 const int fdl = d->fd.loadRelaxed();
261 if (fileDescriptor != -1)
262 d->fd.storeRelaxed(fileDescriptor);
266
267
268
269
270
271
272
273int QDBusUnixFileDescriptor::takeFileDescriptor()
278 return d->fd.fetchAndStoreRelaxed(-1);
281QDBusUnixFileDescriptorPrivate::~QDBusUnixFileDescriptorPrivate()
283 const int fdl = fd.loadRelaxed();
289bool QDBusUnixFileDescriptor::isSupported()
294void QDBusUnixFileDescriptor::setFileDescriptor(
int)
298void QDBusUnixFileDescriptor::giveFileDescriptor(
int)
302int QDBusUnixFileDescriptor::takeFileDescriptor()
307QDBusUnixFileDescriptorPrivate::~QDBusUnixFileDescriptorPrivate()