00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef RECEIPT_H__
00014 #define RECEIPT_H__
00015
00016 #include "gloox.h"
00017 #include "stanzaextension.h"
00018
00019 #include <string>
00020
00021 namespace gloox
00022 {
00023
00024 class Tag;
00025
00029 enum ReceiptType
00030 {
00031 ReceiptRequest,
00032 ReceiptReceived,
00033 ReceiptInvalid
00034 };
00035
00042 class GLOOX_API Receipt : public StanzaExtension
00043 {
00044 public:
00045
00050 Receipt( const Tag* tag );
00051
00056 Receipt( ReceiptType rcpt )
00057 : StanzaExtension( ExtReceipt ), m_rcpt( rcpt )
00058 {}
00059
00063 virtual ~Receipt() {}
00064
00069 ReceiptType rcpt() const { return m_rcpt; }
00070
00071
00072 virtual const std::string& filterString() const;
00073
00074
00075 virtual StanzaExtension* newInstance( const Tag* tag ) const
00076 {
00077 return new Receipt( tag );
00078 }
00079
00080
00081 Tag* tag() const;
00082
00083 private:
00084 ReceiptType m_rcpt;
00085
00086 };
00087
00088 }
00089
00090 #endif // RECEIPT_H__