4 #include "idatabase.h"
\r
6 #include "datetime.h"
\r
8 class Message:public IDatabase,public ILogger
\r
12 Message(const long messageid);
\r
13 Message(const std::string &messageuuid);
\r
15 const long GetMessageID() const { return m_messageid; }
\r
16 const std::string GetMessageUUID() const { return m_messageuuid; }
\r
17 const std::string GetSubject() const { return m_subject; }
\r
18 const std::string GetBody() const { return m_body; }
\r
19 const std::string GetReplyBoardName() { return m_replyboardname; }
\r
20 const DateTime GetDateTime() const { return m_datetime; }
\r
21 const std::string GetFromName() const { return m_fromname; }
\r
22 std::vector<std::string> GetBoards() const { return m_boards; }
\r
23 std::map<long,std::string> GetInReplyTo() const { return m_inreplyto; }
\r
25 const std::string GetNNTPHeaders() const;
\r
26 const std::string GetNNTPArticleID() const;
\r
27 const std::string GetNNTPBody() const;
\r
30 void SetMessageUUID(const std::string &messageuuid) { m_messageuuid=messageuuid; }
\r
31 void SetSubject(const std::string &subject) { m_subject=subject; }
\r
32 void SetBody(const std::string &body) { m_body=body; }
\r
33 void SetReplyBoardName(const std::string &replyboardname) { m_replyboardname=replyboardname; }
\r
34 void SetDateTime(const DateTime &datetime) { m_datetime=datetime; }
\r
35 void SetFromName(const std::string &fromname) { m_fromname=fromname; }
\r
36 void AddBoard(const std::string &board) { m_boards.push_back(board); }
\r
37 void AddInReplyTo(const long index, const std::string &messageid) { m_inreplyto[index]=messageid; }
\r
40 const bool Load(const long messageid, const long boardid=-1);
\r
41 const bool LoadNext(const long messageid, const long boardid=-1); // loads next message in board with messageid > passed id
\r
42 const bool LoadPrevious(const long messageid, const long boardid=-1); // loads previous message in board with messageid < passed id
\r
43 const bool Load(const std::string &messageuuid);
\r
45 const bool ParseNNTPMessage(const std::string &nntpmessage);
\r
47 const bool PostedToAdministrationBoard() { return CheckForAdministrationBoard(m_boards); }
\r
49 const bool StartFreenetInsert();
\r
50 void HandleAdministrationMessage();
\r
54 // checks vector of boards for any special administration boards - if it finds one true is returned, otherwise false
\r
55 const bool CheckForAdministrationBoard(const std::vector<std::string> &boards);
\r
56 void HandleChangeTrust();
\r
59 bool m_addnewpostfromidentities;
\r
60 std::string m_messageuuid;
\r
61 std::string m_subject;
\r
63 std::string m_replyboardname;
\r
64 DateTime m_datetime;
\r
65 std::string m_fromname;
\r
66 std::vector<std::string> m_boards;
\r
67 std::map<long,std::string> m_inreplyto;
\r
68 long m_changemessagetrustonreply;
\r