00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _TelepathyQt4_cli_feature_h_HEADER_GUARD_
00023 #define _TelepathyQt4_cli_feature_h_HEADER_GUARD_
00024
00025 #ifndef IN_TELEPATHY_QT4_HEADER
00026 #error IN_TELEPATHY_QT4_HEADER
00027 #endif
00028
00029 #include <QPair>
00030 #include <QSet>
00031 #include <QSharedDataPointer>
00032 #include <QString>
00033
00034 namespace Telepathy
00035 {
00036 namespace Client
00037 {
00038
00039 class Feature : public QPair<QString, uint>
00040 {
00041 public:
00042 Feature(const QString &className, uint id, bool critical = false);
00043 Feature(const Feature &other);
00044 ~Feature();
00045
00046 Feature &operator=(const Feature &other);
00047
00048 bool isCritical() const;
00049
00050 private:
00051 struct Private;
00052 friend struct Private;
00053 QSharedDataPointer<Private> mPriv;
00054 };
00055
00056 class Features : public QSet<Feature>
00057 {
00058 public:
00059 Features() { }
00060 Features(const Feature &feature) { insert(feature); }
00061 Features(const QSet<Feature> &s) : QSet<Feature>(s) { }
00062 };
00063
00064 inline Features operator|(const Feature &feature1, const Feature &feature2)
00065 {
00066 return Features() << feature1 << feature2;
00067 }
00068
00069 }
00070 }
00071
00072 #endif