00001
00023 #ifndef _TelepathyQt4_capabilities_base_h_HEADER_GUARD_
00024 #define _TelepathyQt4_capabilities_base_h_HEADER_GUARD_
00025
00026 #ifndef IN_TELEPATHY_QT4_HEADER
00027 #error IN_TELEPATHY_QT4_HEADER
00028 #endif
00029
00030 #include <TelepathyQt4/RequestableChannelClassSpec>
00031 #include <TelepathyQt4/Types>
00032
00033 namespace Tp
00034 {
00035
00036 class TELEPATHY_QT4_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 streamedMediaCalls() const;
00052 bool streamedMediaAudioCalls() const;
00053 bool streamedMediaVideoCalls() const;
00054 bool streamedMediaVideoCallsWithAudio() const;
00055 bool upgradingStreamedMediaCalls() const;
00056
00057 bool fileTransfers() const;
00058
00059
00060
00061
00062 protected:
00063 CapabilitiesBase(bool specificToContact);
00064 CapabilitiesBase(const RequestableChannelClassList &rccs,
00065 bool specificToContact);
00066 CapabilitiesBase(const RequestableChannelClassSpecList &rccSpecs,
00067 bool specificToContact);
00068
00069 virtual void updateRequestableChannelClasses(
00070 const RequestableChannelClassList &rccs);
00071
00072 private:
00073 friend class Connection;
00074 friend class Contact;
00075
00076 struct Private;
00077 friend struct Private;
00078 QSharedDataPointer<Private> mPriv;
00079 };
00080
00081 }
00082
00083 Q_DECLARE_METATYPE(Tp::CapabilitiesBase);
00084
00085 #endif