summaryrefslogtreecommitdiffstats
path: root/mailnews/db/msgdb/src/nsMsgOfflineImapOperation.h
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/db/msgdb/src/nsMsgOfflineImapOperation.h')
-rw-r--r--mailnews/db/msgdb/src/nsMsgOfflineImapOperation.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/mailnews/db/msgdb/src/nsMsgOfflineImapOperation.h b/mailnews/db/msgdb/src/nsMsgOfflineImapOperation.h
new file mode 100644
index 000000000..e892a253a
--- /dev/null
+++ b/mailnews/db/msgdb/src/nsMsgOfflineImapOperation.h
@@ -0,0 +1,55 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifndef _nsMsgOfflineImapOperation_H_
+
+#include "nsIMsgOfflineImapOperation.h"
+#include "mdb.h"
+#include "nsMsgDatabase.h"
+#include "prlog.h"
+
+class nsMsgOfflineImapOperation : public nsIMsgOfflineImapOperation
+{
+public:
+ /** Instance Methods **/
+ nsMsgOfflineImapOperation(nsMsgDatabase *db, nsIMdbRow *row);
+ NS_DECL_ISUPPORTS
+ NS_DECL_NSIMSGOFFLINEIMAPOPERATION
+
+
+ nsIMdbRow *GetMDBRow() {return m_mdbRow;}
+ nsresult GetCopiesFromDB();
+ nsresult SetCopiesToDB();
+ void Log(PRLogModuleInfo *logFile);
+protected:
+ virtual ~nsMsgOfflineImapOperation();
+ nsresult AddKeyword(const char *aKeyword, nsCString &addList, const char *addProp,
+ nsCString &removeList, const char *removeProp);
+
+ nsOfflineImapOperationType m_operation;
+ nsMsgKey m_messageKey;
+ nsMsgKey m_sourceMessageKey;
+ uint32_t m_operationFlags; // what to do on sync
+ imapMessageFlagsType m_newFlags; // used for kFlagsChanged
+
+ // these are URI's, and are escaped. Thus, we can use a delimter like ' '
+ // because the real spaces should be escaped.
+ nsCString m_sourceFolder;
+ nsCString m_moveDestination;
+ nsTArray<nsCString> m_copyDestinations;
+
+ nsCString m_keywordsToAdd;
+ nsCString m_keywordsToRemove;
+
+ // nsMsgOfflineImapOperation will have to know what db and row they belong to, since they are really
+ // just a wrapper around the offline operation row in the mdb.
+ // though I hope not.
+ nsMsgDatabase *m_mdb;
+ nsCOMPtr <nsIMdbRow> m_mdbRow;
+};
+
+
+
+#endif /* _nsMsgOfflineImapOperation_H_ */
+