version 0.3.29
[fms.git] / include / message.h
index 9cda4a9..3c4c666 100644 (file)
@@ -3,25 +3,28 @@
 \r
 #include "idatabase.h"\r
 #include "ilogger.h"\r
-#include "datetime.h"\r
+\r
+#include <Poco/DateTime.h>\r
 \r
 class Message:public IDatabase,public ILogger\r
 {\r
 public:\r
-       Message();\r
-       Message(const long messageid);\r
-       Message(const std::string &messageuuid);\r
+       Message(SQLite3DB::DB *db);\r
+       Message(SQLite3DB::DB *db, const long messageid);\r
+       Message(SQLite3DB::DB *db, const std::string &messageuuid);\r
 \r
        const long GetMessageID() const                                 { return m_messageid; }\r
        const std::string GetMessageUUID() const                { return m_messageuuid; }\r
        const std::string GetSubject() const                    { return m_subject; }\r
        const std::string GetBody() const                               { return m_body; }\r
        const std::string GetReplyBoardName()                   { return m_replyboardname; }\r
-       const DateTime GetDateTime() const                              { return m_datetime; }\r
+       const Poco::DateTime GetDateTime() const                { return m_datetime; }\r
        const std::string GetFromName() const                   { return m_fromname; }\r
        std::vector<std::string> GetBoards() const              { return m_boards; }\r
        std::map<long,std::string> GetInReplyTo() const { return m_inreplyto; }\r
 \r
+       void SetFromName(const std::string &fromname)   { m_fromname=fromname; }\r
+\r
        const std::string GetNNTPHeaders() const;\r
        const std::string GetNNTPArticleID() const;\r
        const std::string GetNNTPBody() const;\r
@@ -43,6 +46,7 @@ public:
        const bool Load(const std::string &messageuuid);\r
        \r
        const bool ParseNNTPMessage(const std::string &nntpmessage);\r
+       const bool Create(const long localidentityid, const long boardid, const std::string &subject, const std::string &body, const std::string &references);\r
 \r
        const bool PostedToAdministrationBoard()                { return CheckForAdministrationBoard(m_boards); }\r
 \r
@@ -55,6 +59,15 @@ private:
        const bool CheckForAdministrationBoard(const std::vector<std::string> &boards);\r
        void HandleChangeTrust();\r
        void StripAdministrationBoards();       // removes administration boards from boards vector\r
+       const int FindLocalIdentityID(const std::string &name);\r
+\r
+       struct fileattachment\r
+       {\r
+               fileattachment(const std::string &filename, const std::string &mimetype, const std::vector<unsigned char> &data):m_filename(filename),m_mimetype(mimetype),m_data(data) {}\r
+               std::string m_filename;\r
+               std::string m_mimetype;\r
+               std::vector<unsigned char> m_data;\r
+       };\r
 \r
        long m_messageid;\r
        bool m_addnewpostfromidentities;\r
@@ -62,11 +75,14 @@ private:
        std::string m_subject;\r
        std::string m_body;\r
        std::string m_replyboardname;\r
-       DateTime m_datetime;\r
+       Poco::DateTime m_datetime;\r
        std::string m_fromname;\r
        std::vector<std::string> m_boards;\r
        std::map<long,std::string> m_inreplyto;\r
+       std::vector<fileattachment> m_fileattachments;\r
        long m_changemessagetrustonreply;\r
+       long m_minlocalmessagetrust;\r
+       long m_minlocaltrustlisttrust;\r
 \r
 };\r
 \r