Home · All Classes · All Namespaces · Modules · Functions · Files |
00001 00023 #ifndef _TelepathyQt4_message_h_HEADER_GUARD_ 00024 #define _TelepathyQt4_message_h_HEADER_GUARD_ 00025 00026 #ifndef IN_TELEPATHY_QT4_HEADER 00027 #error IN_TELEPATHY_QT4_HEADER 00028 #endif 00029 00030 #include <QSharedDataPointer> 00031 00032 #include <TelepathyQt4/Constants> 00033 #include <TelepathyQt4/Contact> 00034 #include <TelepathyQt4/Types> 00035 00036 class QDateTime; 00037 00038 namespace Tp 00039 { 00040 00041 class Contact; 00042 class TextChannel; 00043 00044 class TELEPATHY_QT4_EXPORT Message 00045 { 00046 public: 00047 Message(ChannelTextMessageType, const QString &); 00048 Message(const Message &other); 00049 ~Message(); 00050 00051 Message &operator=(const Message &other); 00052 bool operator==(const Message &other) const; 00053 inline bool operator!=(const Message &other) const 00054 { 00055 return !(*this == other); 00056 } 00057 00058 // Convenient access to headers 00059 00060 QDateTime sent() const; 00061 00062 ChannelTextMessageType messageType() const; 00063 00064 bool isTruncated() const; 00065 00066 bool hasNonTextContent() const; 00067 00068 QString messageToken() const; 00069 00070 bool isSpecificToDBusInterface() const; 00071 QString dbusInterface() const; 00072 00073 QString text() const; 00074 00075 // Direct access to the whole message (header and body) 00076 00077 MessagePart header() const; 00078 00079 int size() const; 00080 MessagePart part(uint index) const; 00081 MessagePartList parts() const; 00082 00083 private: 00084 friend class ContactMessenger; 00085 friend class ReceivedMessage; 00086 friend class TextChannel; 00087 00088 TELEPATHY_QT4_NO_EXPORT Message(); 00089 TELEPATHY_QT4_NO_EXPORT Message(const MessagePartList &parts); 00090 TELEPATHY_QT4_NO_EXPORT Message(uint, uint, const QString &); 00091 00092 struct Private; 00093 friend struct Private; 00094 QSharedDataPointer<Private> mPriv; 00095 }; 00096 00097 class TELEPATHY_QT4_EXPORT ReceivedMessage : public Message 00098 { 00099 public: 00100 class DeliveryDetails 00101 { 00102 public: 00103 DeliveryDetails(); 00104 DeliveryDetails(const DeliveryDetails &other); 00105 ~DeliveryDetails(); 00106 00107 DeliveryDetails &operator=(const DeliveryDetails &other); 00108 00109 bool isValid() const { return mPriv.constData() != 0; } 00110 00111 DeliveryStatus status() const; 00112 00113 bool hasOriginalToken() const; 00114 QString originalToken() const; 00115 00116 bool isError() const; 00117 ChannelTextSendError error() const; 00118 00119 bool hasDebugMessage() const; 00120 QString debugMessage() const; 00121 00122 QString dbusError() const; 00123 00124 bool hasEchoedMessage() const; 00125 Message echoedMessage() const; 00126 00127 private: 00128 friend class ReceivedMessage; 00129 00130 TELEPATHY_QT4_NO_EXPORT DeliveryDetails(const MessagePartList &parts); 00131 00132 struct Private; 00133 friend struct Private; 00134 QSharedDataPointer<Private> mPriv; 00135 }; 00136 00137 ReceivedMessage(const ReceivedMessage &other); 00138 ReceivedMessage &operator=(const ReceivedMessage &other); 00139 ~ReceivedMessage(); 00140 00141 QDateTime received() const; 00142 ContactPtr sender() const; 00143 QString senderNickname() const; 00144 00145 QString supersededToken() const; 00146 00147 bool isScrollback() const; 00148 bool isRescued() const; 00149 00150 bool isDeliveryReport() const; 00151 DeliveryDetails deliveryDetails() const; 00152 00153 bool isFromChannel(const TextChannelPtr &channel) const; 00154 00155 private: 00156 friend class TextChannel; 00157 00158 TELEPATHY_QT4_NO_EXPORT ReceivedMessage(const MessagePartList &parts, 00159 const TextChannelPtr &channel); 00160 TELEPATHY_QT4_NO_EXPORT ReceivedMessage(); 00161 00162 TELEPATHY_QT4_NO_EXPORT uint senderHandle() const; 00163 TELEPATHY_QT4_NO_EXPORT QString senderId() const; 00164 TELEPATHY_QT4_NO_EXPORT uint pendingId() const; 00165 00166 TELEPATHY_QT4_NO_EXPORT void setForceNonText(); 00167 TELEPATHY_QT4_NO_EXPORT void clearSenderHandle(); 00168 TELEPATHY_QT4_NO_EXPORT void setSender(const ContactPtr &sender); 00169 }; 00170 00171 } // Tp 00172 00173 #endif
Copyright © 2008-2011 Collabora Ltd. and Nokia Corporation |
Telepathy-Qt4 0.6.5
|