version 0.3.33
[fms.git] / include / freenet / messagexml.h
index 04f97e2..c04e955 100644 (file)
@@ -1,27 +1,36 @@
 #ifndef _messagexml_\r
 #define _messagexml_\r
 \r
-#include "../ifmsxmldocument.h"\r
 #include <vector>\r
 #include <map>\r
 \r
+#include "../ifmsxmldocument.h"\r
+\r
 class MessageXML:public IFMSXMLDocument\r
 {\r
 public:\r
 \r
        MessageXML();\r
 \r
-       std::string GetXML();\r
-       const bool ParseXML(const std::string &xml);\r
-\r
-       std::string GetDate()                                           { return m_date; }\r
-       std::string GetTime()                                           { return m_time; }\r
-       std::string GetSubject()                                        { return m_subject; }\r
-       std::string GetMessageID()                                      { return m_messageid; }\r
-       std::string GetReplyBoard()                                     { return m_replyboard; }\r
-       std::string GetBody()                                           { return m_body; }\r
-       std::vector<std::string> GetBoards()            { return m_boards; }\r
-       std::map<long,std::string> GetInReplyTo()       { return m_inreplyto; }\r
+       virtual std::string GetXML();\r
+       virtual const bool ParseXML(const std::string &xml);\r
+\r
+       struct fileattachment\r
+       {\r
+               fileattachment(const std::string &key, const int size):m_key(key),m_size(size)  {}\r
+               std::string m_key;\r
+               int m_size;\r
+       };\r
+\r
+       const std::string GetDate() const                                                               { return m_date; }\r
+       const std::string GetTime() const                                                               { return m_time; }\r
+       const std::string GetSubject() const                                                    { return m_subject; }\r
+       const std::string GetMessageID() const                                                  { return m_messageid; }\r
+       const std::string GetReplyBoard() const                                                 { return m_replyboard; }\r
+       const std::string GetBody() const                                                               { return m_body; }\r
+       const std::vector<std::string> GetBoards() const                                { return m_boards; }\r
+       const std::map<long,std::string> GetInReplyTo() const                   { return m_inreplyto; }\r
+       const std::vector<fileattachment> GetFileAttachments() const    { return m_fileattachments; }\r
 \r
        void SetDate(const std::string &date)                                                           { m_date=date; }\r
        void SetTime(const std::string &time)                                                           { m_time=time; }\r
@@ -31,8 +40,9 @@ public:
        void SetBody(const std::string &body)                                                           { m_body=body; }\r
        void AddBoard(const std::string &board)                                                         { m_boards.push_back(board); }\r
        void AddInReplyTo(const long index, const std::string &messageid)       { m_inreplyto[index]=messageid; }\r
+       void AddFileAttachment(const std::string &key, const int size)          { m_fileattachments.push_back(fileattachment(key,size)); }\r
 \r
-private:\r
+protected:\r
        void Initialize();\r
 \r
        std::string m_date;\r
@@ -42,6 +52,7 @@ private:
        std::vector<std::string> m_boards;\r
        std::string m_replyboard;\r
        std::map<long,std::string> m_inreplyto;\r
+       std::vector<fileattachment> m_fileattachments;\r
        std::string m_body;\r
 \r
 };\r