00001
00023 #ifndef _TelepathyQt_capabilities_base_h_HEADER_GUARD_
00024 #define _TelepathyQt_capabilities_base_h_HEADER_GUARD_
00025
00026 #ifndef IN_TP_QT_HEADER
00027 #error IN_TP_QT_HEADER
00028 #endif
00029
00030 #include <TelepathyQt/RequestableChannelClassSpec>
00031 #include <TelepathyQt/Types>
00032
00033 namespace Tp
00034 {
00035
00036 class TP_QT_EXPORT CapabilitiesBase
00037 {
00038 public:
00039 CapabilitiesBase();
00040 CapabilitiesBase(const CapabilitiesBase &other);
00041 virtual ~CapabilitiesBase();
00042
00043 CapabilitiesBase &operator=(const CapabilitiesBase &other);
00044
00045 RequestableChannelClassSpecList allClassSpecs() const;
00046
00047 bool isSpecificToContact() const;
00048
00049 bool textChats() const;
00050
00051 bool audioCalls() const;
00052 bool videoCalls() const;
00053 bool videoCallsWithAudio() const;
00054 bool upgradingCalls() const;
00055
00056 TP_QT_DEPRECATED bool streamedMediaCalls() const;
00057 TP_QT_DEPRECATED bool streamedMediaAudioCalls() const;
00058 TP_QT_DEPRECATED bool streamedMediaVideoCalls() const;
00059 TP_QT_DEPRECATED bool streamedMediaVideoCallsWithAudio() const;
00060 TP_QT_DEPRECATED bool upgradingStreamedMediaCalls() const;
00061
00062 bool fileTransfers() const;
00063
00064
00065
00066
00067 protected:
00068 CapabilitiesBase(bool specificToContact);
00069 CapabilitiesBase(const RequestableChannelClassList &rccs,
00070 bool specificToContact);
00071 CapabilitiesBase(const RequestableChannelClassSpecList &rccSpecs,
00072 bool specificToContact);
00073
00074 virtual void updateRequestableChannelClasses(
00075 const RequestableChannelClassList &rccs);
00076
00077 private:
00078 friend class Connection;
00079 friend class Contact;
00080
00081 struct Private;
00082 friend struct Private;
00083 QSharedDataPointer<Private> mPriv;
00084 };
00085
00086 }
00087
00088 Q_DECLARE_METATYPE(Tp::CapabilitiesBase);
00089
00090 #endif