0dfe628ef0afb42d206549ae1017f5b17a465c59
[fms.git] / include / messagethread.h
1 #ifndef _messagethread_\r
2 #define _messagethread_\r
3 \r
4 #include "idatabase.h"\r
5 \r
6 class MessageThread:public IDatabase\r
7 {\r
8 public:\r
9         struct threadnode\r
10         {\r
11                 long m_messageid;\r
12                 long m_level;\r
13                 std::string m_subject;\r
14                 std::string m_fromname;\r
15                 std::string m_date;\r
16         };\r
17         \r
18         void Clear()                                                                    { m_nodes.clear(); }\r
19 \r
20         const bool Load(const std::string &messageidstr, const long boardid, const bool bydate=false);\r
21         const bool Load(const long messageid, const long boardid, const bool bydate=false);\r
22         \r
23         const std::vector<threadnode> GetNodes()                { return m_nodes; }\r
24         \r
25 private:\r
26         const threadnode GetOriginalMessageNode(const long messageid, const long boardid);\r
27         void AddChildren(const long messageid, const long level, const long boardid);\r
28 \r
29         class datecompare\r
30         {\r
31         public:\r
32                 const bool operator()(const threadnode &node1, const threadnode &node2) const\r
33                 {\r
34                         return node1.m_date<node2.m_date;\r
35                 }\r
36         };\r
37 \r
38         std::vector<threadnode> m_nodes;\r
39 };\r
40 \r
41 #endif  // _messagethread_\r