version 0.3.33
[fms.git] / include / freenet / frostmessagexml.h
1 #ifndef _frost_message_xml_\r
2 #define _frost_message_xml_\r
3 \r
4 #include "messagexml.h"\r
5 \r
6 class FrostMessageXML:public MessageXML\r
7 {\r
8 public:\r
9 \r
10         std::string GetXML();\r
11         const bool ParseXML(const std::string &xml);\r
12 \r
13         void Initialize();\r
14 \r
15         struct frostfileattachment\r
16         {\r
17                 frostfileattachment(const std::string &key, const int size, const std::string &name):m_key(key),m_size(size),m_name(name)       {}\r
18                 std::string m_key;\r
19                 int m_size;\r
20                 std::string m_name;\r
21         };\r
22 \r
23         struct frostboardattachment\r
24         {\r
25                 frostboardattachment(const std::string &name, const std::string &description, const std::string &publickey, const std::string &privatekey):m_name(name),m_description(description),m_publickey(publickey),m_privatekey(privatekey)      {}\r
26                 std::string m_name;\r
27                 std::string m_description;\r
28                 std::string m_publickey;\r
29                 std::string m_privatekey;\r
30         };\r
31 \r
32         const long GetFrostIDLinePos() const                    { return m_frostidlinepos; }\r
33         const long GetFrostIDLineLen() const                    { return m_frostidlinelen; }\r
34         const std::string GetFrostDate() const                  { return m_frostdate; }\r
35         const std::string GetFrostTime() const                  { return m_frosttime; }\r
36         const std::string GetFrostAuthor() const                { return m_frostauthor; }\r
37         const std::string GetFrostSubject() const               { return m_frostsubject; }\r
38         const std::string GetFrostMessageID() const             { return m_frostmessageid; }\r
39         const std::string GetFrostBoard() const                 { return m_frostboard; }\r
40         const std::string GetFrostPublicKey() const             { return m_frostpublickey; }\r
41         const std::string GetFrostSignature() const             { return m_frostsignature; }\r
42         const std::string GetFrostSignatureV2() const   { return m_frostsignaturev2; }\r
43         const std::string GetFrostInReplyTo() const             { return m_frostinreplyto; }\r
44         const std::vector<frostfileattachment> GetFrostFileAttachments() const  { return m_frostfileattachments; }\r
45         const std::vector<frostboardattachment> GetFrostBoardAttachments() const        { return m_frostboardattachments; }\r
46 \r
47         const std::string GetSignableContentV2() const;\r
48 \r
49 protected:\r
50         long m_frostidlinepos;\r
51         long m_frostidlinelen;\r
52         std::string m_frostdate;\r
53         std::string m_frosttime;\r
54         std::string m_frostauthor;\r
55         std::string m_frostsubject;\r
56         std::string m_frostmessageid;\r
57         std::string m_frostboard;\r
58         std::string m_frostpublickey;\r
59         std::string m_frostsignature;\r
60         std::string m_frostsignaturev2;\r
61         std::string m_frostinreplyto;\r
62         std::vector<frostfileattachment> m_frostfileattachments;\r
63         std::vector<frostboardattachment> m_frostboardattachments;\r
64 \r
65 private:\r
66         const std::string FrostMakeFileName(const std::string &input) const;\r
67 \r
68 };\r
69 \r
70 #endif  // _frost_message_xml_\r