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