--- /dev/null
+#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