version 0.3.23
[fms.git] / include / messagethread.h
diff --git a/include/messagethread.h b/include/messagethread.h
new file mode 100644 (file)
index 0000000..0dfe628
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef _messagethread_\r
+#define _messagethread_\r
+\r
+#include "idatabase.h"\r
+\r
+class MessageThread:public IDatabase\r
+{\r
+public:\r
+       struct threadnode\r
+       {\r
+               long m_messageid;\r
+               long m_level;\r
+               std::string m_subject;\r
+               std::string m_fromname;\r
+               std::string m_date;\r
+       };\r
+       \r
+       void Clear()                                                                    { m_nodes.clear(); }\r
+\r
+       const bool Load(const std::string &messageidstr, const long boardid, const bool bydate=false);\r
+       const bool Load(const long messageid, const long boardid, const bool bydate=false);\r
+       \r
+       const std::vector<threadnode> GetNodes()                { return m_nodes; }\r
+       \r
+private:\r
+       const threadnode GetOriginalMessageNode(const long messageid, const long boardid);\r
+       void AddChildren(const long messageid, const long level, const long boardid);\r
+\r
+       class datecompare\r
+       {\r
+       public:\r
+               const bool operator()(const threadnode &node1, const threadnode &node2) const\r
+               {\r
+                       return node1.m_date<node2.m_date;\r
+               }\r
+       };\r
+\r
+       std::vector<threadnode> m_nodes;\r
+};\r
+\r
+#endif // _messagethread_\r