version 0.3.29
[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         MessageThread(SQLite3DB::DB *db):IDatabase(db)                  {}\r
10 \r
11         struct threadnode\r
12         {\r
13                 long m_messageid;\r
14                 long m_level;\r
15                 std::string m_subject;\r
16                 std::string m_fromname;\r
17                 std::string m_date;\r
18         };\r
19         \r
20         void Clear()                                                                    { m_nodes.clear(); }\r
21 \r
22         const bool Load(const std::string &messageidstr, const long boardid, const bool bydate=false);\r
23         const bool Load(const long messageid, const long boardid, const bool bydate=false);\r
24         \r
25         const std::vector<threadnode> GetNodes()                { return m_nodes; }\r
26         \r
27 private:\r
28         const threadnode GetOriginalMessageNode(const long messageid, const long boardid);\r
29         void AddChildren(const long messageid, const long level, const long boardid);\r
30 \r
31         class datecompare\r
32         {\r
33         public:\r
34                 const bool operator()(const threadnode &node1, const threadnode &node2) const\r
35                 {\r
36                         return node1.m_date<node2.m_date;\r
37                 }\r
38         };\r
39 \r
40         std::vector<threadnode> m_nodes;\r
41 };\r
42 \r
43 #endif  // _messagethread_\r