| Home · All Classes · All Namespaces · Modules · Functions · Files

capabilities-base.h

    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     bool streamedMediaCalls() const;
    00057     bool streamedMediaAudioCalls() const;
    00058     bool streamedMediaVideoCalls() const;
    00059     bool streamedMediaVideoCallsWithAudio() const;
    00060     bool upgradingStreamedMediaCalls() const;
    00061
    00062     bool fileTransfers() const;
    00063
    00064     // later: FIXME TODO why not now?
    00065     // QList<FileHashType> fileTransfersRequireHash() const;
    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 } // Tp
    00087
    00088 Q_DECLARE_METATYPE(Tp::CapabilitiesBase);
    00089
    00090 #endif