version 0.3.33
[fms.git] / include / freenet / frostmessagexml.h
diff --git a/include/freenet/frostmessagexml.h b/include/freenet/frostmessagexml.h
new file mode 100644 (file)
index 0000000..500f403
--- /dev/null
@@ -0,0 +1,70 @@
+#ifndef _frost_message_xml_\r
+#define _frost_message_xml_\r
+\r
+#include "messagexml.h"\r
+\r
+class FrostMessageXML:public MessageXML\r
+{\r
+public:\r
+\r
+       std::string GetXML();\r
+       const bool ParseXML(const std::string &xml);\r
+\r
+       void Initialize();\r
+\r
+       struct frostfileattachment\r
+       {\r
+               frostfileattachment(const std::string &key, const int size, const std::string &name):m_key(key),m_size(size),m_name(name)       {}\r
+               std::string m_key;\r
+               int m_size;\r
+               std::string m_name;\r
+       };\r
+\r
+       struct frostboardattachment\r
+       {\r
+               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
+               std::string m_name;\r
+               std::string m_description;\r
+               std::string m_publickey;\r
+               std::string m_privatekey;\r
+       };\r
+\r
+       const long GetFrostIDLinePos() const                    { return m_frostidlinepos; }\r
+       const long GetFrostIDLineLen() const                    { return m_frostidlinelen; }\r
+       const std::string GetFrostDate() const                  { return m_frostdate; }\r
+       const std::string GetFrostTime() const                  { return m_frosttime; }\r
+       const std::string GetFrostAuthor() const                { return m_frostauthor; }\r
+       const std::string GetFrostSubject() const               { return m_frostsubject; }\r
+       const std::string GetFrostMessageID() const             { return m_frostmessageid; }\r
+       const std::string GetFrostBoard() const                 { return m_frostboard; }\r
+       const std::string GetFrostPublicKey() const             { return m_frostpublickey; }\r
+       const std::string GetFrostSignature() const             { return m_frostsignature; }\r
+       const std::string GetFrostSignatureV2() const   { return m_frostsignaturev2; }\r
+       const std::string GetFrostInReplyTo() const             { return m_frostinreplyto; }\r
+       const std::vector<frostfileattachment> GetFrostFileAttachments() const  { return m_frostfileattachments; }\r
+       const std::vector<frostboardattachment> GetFrostBoardAttachments() const        { return m_frostboardattachments; }\r
+\r
+       const std::string GetSignableContentV2() const;\r
+\r
+protected:\r
+       long m_frostidlinepos;\r
+       long m_frostidlinelen;\r
+       std::string m_frostdate;\r
+       std::string m_frosttime;\r
+       std::string m_frostauthor;\r
+       std::string m_frostsubject;\r
+       std::string m_frostmessageid;\r
+       std::string m_frostboard;\r
+       std::string m_frostpublickey;\r
+       std::string m_frostsignature;\r
+       std::string m_frostsignaturev2;\r
+       std::string m_frostinreplyto;\r
+       std::vector<frostfileattachment> m_frostfileattachments;\r
+       std::vector<frostboardattachment> m_frostboardattachments;\r
+\r
+private:\r
+       const std::string FrostMakeFileName(const std::string &input) const;\r
+\r
+};\r
+\r
+#endif // _frost_message_xml_\r