1 /**
2 * This file is part of TelepathyQt
3 *
4 * @copyright Copyright (C) 2010 Collabora Ltd. <http://www.collabora.co.uk/>
5 * @copyright Copyright (C) 2010 Nokia Corporation
6 * @license LGPL 2.1
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 */
22
23 #include <TelepathyQt/RequestableChannelClassSpec>
24
25 namespace Tp
26 {
27
28 struct TP_QT_NO_EXPORT RequestableChannelClassSpec::Private : public QSharedData
29 {
PrivateTp::RequestableChannelClassSpec::Private30 Private(const RequestableChannelClass &rcc)
31 : rcc(rcc) {}
32
33 RequestableChannelClass rcc;
34 };
35
36 /**
37 * \class RequestableChannelClassSpec
38 * \ingroup wrappers
39 * \headerfile TelepathyQt/requestable-channel-class-spec.h <TelepathyQt/RequestableChannelClassSpec>
40 *
41 * \brief The RequestableChannelClassSpec class represents a Telepathy
42 * requestable channel class.
43 */
44
RequestableChannelClassSpec(const RequestableChannelClass & rcc)45 RequestableChannelClassSpec::RequestableChannelClassSpec(const RequestableChannelClass &rcc)
46 : mPriv(new Private(rcc))
47 {
48 }
49
RequestableChannelClassSpec()50 RequestableChannelClassSpec::RequestableChannelClassSpec()
51 {
52 }
53
RequestableChannelClassSpec(const RequestableChannelClassSpec & other)54 RequestableChannelClassSpec::RequestableChannelClassSpec(const RequestableChannelClassSpec &other)
55 : mPriv(other.mPriv)
56 {
57 }
58
~RequestableChannelClassSpec()59 RequestableChannelClassSpec::~RequestableChannelClassSpec()
60 {
61 }
62
textChat()63 RequestableChannelClassSpec RequestableChannelClassSpec::textChat()
64 {
65 static RequestableChannelClassSpec spec;
66
67 if (!spec.isValid()) {
68 RequestableChannelClass rcc;
69 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
70 TP_QT_IFACE_CHANNEL_TYPE_TEXT);
71 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
72 (uint) HandleTypeContact);
73 spec = RequestableChannelClassSpec(rcc);
74 }
75
76 return spec;
77 }
78
textChatroom()79 RequestableChannelClassSpec RequestableChannelClassSpec::textChatroom()
80 {
81 static RequestableChannelClassSpec spec;
82
83 if (!spec.isValid()) {
84 RequestableChannelClass rcc;
85 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
86 TP_QT_IFACE_CHANNEL_TYPE_TEXT);
87 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
88 (uint) HandleTypeRoom);
89 spec = RequestableChannelClassSpec(rcc);
90 }
91
92 return spec;
93 }
94
audioCall()95 RequestableChannelClassSpec RequestableChannelClassSpec::audioCall()
96 {
97 static RequestableChannelClassSpec spec;
98
99 if (!spec.isValid()) {
100 RequestableChannelClass rcc;
101 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
102 TP_QT_IFACE_CHANNEL_TYPE_CALL);
103 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
104 (uint) HandleTypeContact);
105 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialAudio"),
106 true);
107 rcc.allowedProperties.append(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialAudioName"));
108 spec = RequestableChannelClassSpec(rcc);
109 }
110
111 return spec;
112 }
113
audioCallWithVideoAllowed()114 RequestableChannelClassSpec RequestableChannelClassSpec::audioCallWithVideoAllowed()
115 {
116 static RequestableChannelClassSpec spec;
117
118 if (!spec.isValid()) {
119 RequestableChannelClass rcc;
120 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
121 TP_QT_IFACE_CHANNEL_TYPE_CALL);
122 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
123 (uint) HandleTypeContact);
124 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialAudio"),
125 true);
126 rcc.allowedProperties.append(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialAudioName"));
127 rcc.allowedProperties.append(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialVideo"));
128 rcc.allowedProperties.append(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialVideoName"));
129 spec = RequestableChannelClassSpec(rcc);
130 }
131
132 return spec;
133 }
134
videoCall()135 RequestableChannelClassSpec RequestableChannelClassSpec::videoCall()
136 {
137 static RequestableChannelClassSpec spec;
138
139 if (!spec.isValid()) {
140 RequestableChannelClass rcc;
141 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
142 TP_QT_IFACE_CHANNEL_TYPE_CALL);
143 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
144 (uint) HandleTypeContact);
145 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialVideo"),
146 true);
147 rcc.allowedProperties.append(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialVideoName"));
148 spec = RequestableChannelClassSpec(rcc);
149 }
150
151 return spec;
152 }
153
videoCallWithAudioAllowed()154 RequestableChannelClassSpec RequestableChannelClassSpec::videoCallWithAudioAllowed()
155 {
156 static RequestableChannelClassSpec spec;
157
158 if (!spec.isValid()) {
159 RequestableChannelClass rcc;
160 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
161 TP_QT_IFACE_CHANNEL_TYPE_CALL);
162 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
163 (uint) HandleTypeContact);
164 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialVideo"),
165 true);
166 rcc.allowedProperties.append(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialVideoName"));
167 rcc.allowedProperties.append(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialAudio"));
168 rcc.allowedProperties.append(TP_QT_IFACE_CHANNEL_TYPE_CALL + QLatin1String(".InitialAudioName"));
169 spec = RequestableChannelClassSpec(rcc);
170 }
171
172 return spec;
173 }
174
streamedMediaCall()175 RequestableChannelClassSpec RequestableChannelClassSpec::streamedMediaCall()
176 {
177 static RequestableChannelClassSpec spec;
178
179 if (!spec.isValid()) {
180 RequestableChannelClass rcc;
181 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
182 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
183 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
184 (uint) HandleTypeContact);
185 spec = RequestableChannelClassSpec(rcc);
186 }
187
188 return spec;
189 }
190
streamedMediaAudioCall()191 RequestableChannelClassSpec RequestableChannelClassSpec::streamedMediaAudioCall()
192 {
193 static RequestableChannelClassSpec spec;
194
195 if (!spec.isValid()) {
196 RequestableChannelClass rcc;
197 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
198 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
199 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
200 (uint) HandleTypeContact);
201 rcc.allowedProperties.append(
202 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA + QLatin1String(".InitialAudio"));
203 spec = RequestableChannelClassSpec(rcc);
204 }
205
206 return spec;
207 }
208
streamedMediaVideoCall()209 RequestableChannelClassSpec RequestableChannelClassSpec::streamedMediaVideoCall()
210 {
211 static RequestableChannelClassSpec spec;
212
213 if (!spec.isValid()) {
214 RequestableChannelClass rcc;
215 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
216 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
217 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
218 (uint) HandleTypeContact);
219 rcc.allowedProperties.append(
220 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA + QLatin1String(".InitialVideo"));
221 spec = RequestableChannelClassSpec(rcc);
222 }
223
224 return spec;
225 }
226
streamedMediaVideoCallWithAudio()227 RequestableChannelClassSpec RequestableChannelClassSpec::streamedMediaVideoCallWithAudio()
228 {
229 static RequestableChannelClassSpec spec;
230
231 if (!spec.isValid()) {
232 RequestableChannelClass rcc;
233 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
234 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
235 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
236 (uint) HandleTypeContact);
237 rcc.allowedProperties.append(
238 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA + QLatin1String(".InitialAudio"));
239 rcc.allowedProperties.append(
240 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA + QLatin1String(".InitialVideo"));
241 spec = RequestableChannelClassSpec(rcc);
242 }
243
244 return spec;
245 }
246
fileTransfer()247 RequestableChannelClassSpec RequestableChannelClassSpec::fileTransfer()
248 {
249 static RequestableChannelClassSpec spec;
250
251 if (!spec.isValid()) {
252 RequestableChannelClass rcc;
253 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
254 TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER);
255 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
256 (uint) HandleTypeContact);
257 spec = RequestableChannelClassSpec(rcc);
258 }
259
260 return spec;
261 }
262
conferenceTextChat()263 RequestableChannelClassSpec RequestableChannelClassSpec::conferenceTextChat()
264 {
265 static RequestableChannelClassSpec spec;
266
267 if (!spec.isValid()) {
268 RequestableChannelClass rcc;
269 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
270 TP_QT_IFACE_CHANNEL_TYPE_TEXT);
271 rcc.allowedProperties.append(
272 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialChannels"));
273 spec = RequestableChannelClassSpec(rcc);
274 }
275
276 return spec;
277 }
278
conferenceTextChatWithInvitees()279 RequestableChannelClassSpec RequestableChannelClassSpec::conferenceTextChatWithInvitees()
280 {
281 static RequestableChannelClassSpec spec;
282
283 if (!spec.isValid()) {
284 RequestableChannelClass rcc;
285 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
286 TP_QT_IFACE_CHANNEL_TYPE_TEXT);
287 rcc.allowedProperties.append(
288 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialChannels"));
289 rcc.allowedProperties.append(
290 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialInviteeHandles"));
291 spec = RequestableChannelClassSpec(rcc);
292 }
293
294 return spec;
295 }
296
conferenceTextChatroom()297 RequestableChannelClassSpec RequestableChannelClassSpec::conferenceTextChatroom()
298 {
299 static RequestableChannelClassSpec spec;
300
301 if (!spec.isValid()) {
302 RequestableChannelClass rcc;
303 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
304 TP_QT_IFACE_CHANNEL_TYPE_TEXT);
305 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
306 (uint) HandleTypeRoom);
307
308 rcc.allowedProperties.append(
309 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialChannels"));
310 spec = RequestableChannelClassSpec(rcc);
311 }
312
313 return spec;
314 }
315
conferenceTextChatroomWithInvitees()316 RequestableChannelClassSpec RequestableChannelClassSpec::conferenceTextChatroomWithInvitees()
317 {
318 static RequestableChannelClassSpec spec;
319
320 if (!spec.isValid()) {
321 RequestableChannelClass rcc;
322 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
323 TP_QT_IFACE_CHANNEL_TYPE_TEXT);
324 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
325 (uint) HandleTypeRoom);
326
327 rcc.allowedProperties.append(
328 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialChannels"));
329 rcc.allowedProperties.append(
330 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialInviteeHandles"));
331 spec = RequestableChannelClassSpec(rcc);
332 }
333
334 return spec;
335 }
336
conferenceStreamedMediaCall()337 RequestableChannelClassSpec RequestableChannelClassSpec::conferenceStreamedMediaCall()
338 {
339 static RequestableChannelClassSpec spec;
340
341 if (!spec.isValid()) {
342 RequestableChannelClass rcc;
343 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
344 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
345 rcc.allowedProperties.append(
346 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialChannels"));
347 spec = RequestableChannelClassSpec(rcc);
348 }
349
350 return spec;
351 }
352
conferenceStreamedMediaCallWithInvitees()353 RequestableChannelClassSpec RequestableChannelClassSpec::conferenceStreamedMediaCallWithInvitees()
354 {
355 static RequestableChannelClassSpec spec;
356
357 if (!spec.isValid()) {
358 RequestableChannelClass rcc;
359 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
360 TP_QT_IFACE_CHANNEL_TYPE_STREAMED_MEDIA);
361 rcc.allowedProperties.append(
362 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialChannels"));
363 rcc.allowedProperties.append(
364 TP_QT_IFACE_CHANNEL_INTERFACE_CONFERENCE + QLatin1String(".InitialInviteeHandles"));
365 spec = RequestableChannelClassSpec(rcc);
366 }
367
368 return spec;
369 }
370
contactSearch()371 RequestableChannelClassSpec RequestableChannelClassSpec::contactSearch()
372 {
373 static RequestableChannelClassSpec spec;
374
375 if (!spec.isValid()) {
376 RequestableChannelClass rcc;
377 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
378 TP_QT_IFACE_CHANNEL_TYPE_CONTACT_SEARCH);
379 spec = RequestableChannelClassSpec(rcc);
380 }
381
382 return spec;
383 }
384
contactSearchWithSpecificServer()385 RequestableChannelClassSpec RequestableChannelClassSpec::contactSearchWithSpecificServer()
386 {
387 static RequestableChannelClassSpec spec;
388
389 if (!spec.isValid()) {
390 RequestableChannelClass rcc;
391 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
392 TP_QT_IFACE_CHANNEL_TYPE_CONTACT_SEARCH);
393 rcc.allowedProperties.append(
394 TP_QT_IFACE_CHANNEL_TYPE_CONTACT_SEARCH + QLatin1String(".Server"));
395 spec = RequestableChannelClassSpec(rcc);
396 }
397
398 return spec;
399 }
400
contactSearchWithLimit()401 RequestableChannelClassSpec RequestableChannelClassSpec::contactSearchWithLimit()
402 {
403 static RequestableChannelClassSpec spec;
404
405 if (!spec.isValid()) {
406 RequestableChannelClass rcc;
407 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
408 TP_QT_IFACE_CHANNEL_TYPE_CONTACT_SEARCH);
409 rcc.allowedProperties.append(
410 TP_QT_IFACE_CHANNEL_TYPE_CONTACT_SEARCH + QLatin1String(".Limit"));
411 spec = RequestableChannelClassSpec(rcc);
412 }
413
414 return spec;
415 }
416
contactSearchWithSpecificServerAndLimit()417 RequestableChannelClassSpec RequestableChannelClassSpec::contactSearchWithSpecificServerAndLimit()
418 {
419 static RequestableChannelClassSpec spec;
420
421 if (!spec.isValid()) {
422 RequestableChannelClass rcc;
423 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
424 TP_QT_IFACE_CHANNEL_TYPE_CONTACT_SEARCH);
425 rcc.allowedProperties.append(
426 TP_QT_IFACE_CHANNEL_TYPE_CONTACT_SEARCH + QLatin1String(".Server"));
427 rcc.allowedProperties.append(
428 TP_QT_IFACE_CHANNEL_TYPE_CONTACT_SEARCH + QLatin1String(".Limit"));
429 spec = RequestableChannelClassSpec(rcc);
430 }
431
432 return spec;
433 }
434
dbusTube(const QString & serviceName)435 RequestableChannelClassSpec RequestableChannelClassSpec::dbusTube(const QString &serviceName)
436 {
437 static RequestableChannelClassSpec spec;
438
439 if (!spec.isValid()) {
440 RequestableChannelClass rcc;
441 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
442 TP_QT_IFACE_CHANNEL_TYPE_DBUS_TUBE);
443 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
444 (uint) HandleTypeContact);
445 spec = RequestableChannelClassSpec(rcc);
446 }
447
448 if (serviceName.isEmpty()) {
449 return spec;
450 }
451
452 RequestableChannelClass rcc = spec.bareClass();
453 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL_TYPE_DBUS_TUBE + QLatin1String(".ServiceName"),
454 serviceName);
455 return RequestableChannelClassSpec(rcc);
456 }
457
streamTube(const QString & service)458 RequestableChannelClassSpec RequestableChannelClassSpec::streamTube(const QString &service)
459 {
460 static RequestableChannelClassSpec spec;
461
462 if (!spec.isValid()) {
463 RequestableChannelClass rcc;
464 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
465 TP_QT_IFACE_CHANNEL_TYPE_STREAM_TUBE);
466 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
467 (uint) HandleTypeContact);
468 spec = RequestableChannelClassSpec(rcc);
469 }
470
471 if (service.isEmpty()) {
472 return spec;
473 }
474
475 RequestableChannelClass rcc = spec.bareClass();
476 rcc.fixedProperties.insert(TP_QT_IFACE_CHANNEL_TYPE_STREAM_TUBE + QLatin1String(".Service"),
477 service);
478 return RequestableChannelClassSpec(rcc);
479 }
480
operator =(const RequestableChannelClassSpec & other)481 RequestableChannelClassSpec &RequestableChannelClassSpec::operator=(const RequestableChannelClassSpec &other)
482 {
483 this->mPriv = other.mPriv;
484 return *this;
485 }
486
operator ==(const RequestableChannelClassSpec & other) const487 bool RequestableChannelClassSpec::operator==(const RequestableChannelClassSpec &other) const
488 {
489 if (!isValid() || !other.isValid()) {
490 if (!isValid() && !other.isValid()) {
491 return true;
492 }
493 return false;
494 }
495
496 return mPriv->rcc == other.mPriv->rcc;
497 }
498
supports(const RequestableChannelClassSpec & other) const499 bool RequestableChannelClassSpec::supports(const RequestableChannelClassSpec &other) const
500 {
501 if (!isValid()) {
502 return false;
503 }
504
505 if (mPriv->rcc.fixedProperties == other.fixedProperties()) {
506 foreach (const QString &prop, other.allowedProperties()) {
507 if (!mPriv->rcc.allowedProperties.contains(prop)) {
508 return false;
509 }
510 }
511 return true;
512 }
513 return false;
514 }
515
channelType() const516 QString RequestableChannelClassSpec::channelType() const
517 {
518 if (!isValid()) {
519 return QString();
520 }
521 return qdbus_cast<QString>(mPriv->rcc.fixedProperties.value(
522 TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType")));
523 }
524
hasTargetHandleType() const525 bool RequestableChannelClassSpec::hasTargetHandleType() const
526 {
527 if (!isValid()) {
528 return false;
529 }
530 return mPriv->rcc.fixedProperties.contains(
531 TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"));
532 }
533
targetHandleType() const534 HandleType RequestableChannelClassSpec::targetHandleType() const
535 {
536 if (!hasTargetHandleType()) {
537 return (HandleType) -1;
538 }
539 return (HandleType) qdbus_cast<uint>(mPriv->rcc.fixedProperties.value(
540 TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType")));
541 }
542
hasFixedProperty(const QString & name) const543 bool RequestableChannelClassSpec::hasFixedProperty(const QString &name) const
544 {
545 if (!isValid()) {
546 return false;
547 }
548 return mPriv->rcc.fixedProperties.contains(name);
549 }
550
fixedProperty(const QString & name) const551 QVariant RequestableChannelClassSpec::fixedProperty(const QString &name) const
552 {
553 if (!isValid()) {
554 return QVariant();
555 }
556 return mPriv->rcc.fixedProperties.value(name);
557 }
558
fixedProperties() const559 QVariantMap RequestableChannelClassSpec::fixedProperties() const
560 {
561 if (!isValid()) {
562 return QVariantMap();
563 }
564 return mPriv->rcc.fixedProperties;
565 }
566
allowsProperty(const QString & name) const567 bool RequestableChannelClassSpec::allowsProperty(const QString &name) const
568 {
569 if (!isValid()) {
570 return false;
571 }
572 return mPriv->rcc.allowedProperties.contains(name);
573 }
574
allowedProperties() const575 QStringList RequestableChannelClassSpec::allowedProperties() const
576 {
577 if (!isValid()) {
578 return QStringList();
579 }
580 return mPriv->rcc.allowedProperties;
581 }
582
bareClass() const583 RequestableChannelClass RequestableChannelClassSpec::bareClass() const
584 {
585 return isValid() ? mPriv->rcc : RequestableChannelClass();
586 }
587
588 /**
589 * \class RequestableChannelClassSpecList
590 * \ingroup wrappers
591 * \headerfile TelepathyQt/requestable-channel-class-spec.h <TelepathyQt/RequestableChannelClassSpecList>
592 *
593 * \brief The RequestableChannelClassSpecList class represents a list of
594 * RequestableChannelClassSpec.
595 */
596
597 } // Tp
598