X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=include%2Fmessagethread.h;fp=include%2Fmessagethread.h;h=0dfe628ef0afb42d206549ae1017f5b17a465c59;hp=0000000000000000000000000000000000000000;hb=221236a4d3aac4144529d418ce368db5c98facb0;hpb=d5c9f7e6c1dd263dfc85a3cb5941a378a5ddd923 diff --git a/include/messagethread.h b/include/messagethread.h new file mode 100644 index 0000000..0dfe628 --- /dev/null +++ b/include/messagethread.h @@ -0,0 +1,41 @@ +#ifndef _messagethread_ +#define _messagethread_ + +#include "idatabase.h" + +class MessageThread:public IDatabase +{ +public: + struct threadnode + { + long m_messageid; + long m_level; + std::string m_subject; + std::string m_fromname; + std::string m_date; + }; + + void Clear() { m_nodes.clear(); } + + const bool Load(const std::string &messageidstr, const long boardid, const bool bydate=false); + const bool Load(const long messageid, const long boardid, const bool bydate=false); + + const std::vector GetNodes() { return m_nodes; } + +private: + const threadnode GetOriginalMessageNode(const long messageid, const long boardid); + void AddChildren(const long messageid, const long level, const long boardid); + + class datecompare + { + public: + const bool operator()(const threadnode &node1, const threadnode &node2) const + { + return node1.m_date m_nodes; +}; + +#endif // _messagethread_