diff options
Diffstat (limited to '')
-rw-r--r-- | comm/mailnews/local/public/nsIMailboxUrl.idl | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/comm/mailnews/local/public/nsIMailboxUrl.idl b/comm/mailnews/local/public/nsIMailboxUrl.idl new file mode 100644 index 0000000000..85aefd7343 --- /dev/null +++ b/comm/mailnews/local/public/nsIMailboxUrl.idl @@ -0,0 +1,58 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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/. */ + +#include "nsISupports.idl" +#include "MailNewsTypes2.idl" + +interface nsIStreamListener; +interface nsIMsgDBHdr; + +typedef long nsMailboxAction; + +[scriptable, uuid(2ac72280-90f4-4d80-8af1-5e7a1997e2a8)] +interface nsIMailboxUrl : nsISupports { + + // Mailbox urls which parse a mailbox folder require a consumer of the + // stream which will represent the mailbox. This consumer is the mailbox + // parser. As data from the mailbox folder is read in, the data will be + // written to a stream and the consumer will be notified through + // nsIStreamListenter::OnDataAvailable that the stream has data + // available... + // mscott: I wonder if the caller should be allowed to create and set + // the stream they want the data written to as well? Hmm.... + + attribute nsIStreamListener mailboxParser; + + ///////////////////////////////////////////////////////////////////////// + // Copy/Move mailbox urls require a mailbox copy handler which actually + // performs the copy. + ///////////////////////////////////////////////////////////////////////// + attribute nsIStreamListener mailboxCopyHandler; + + // Some mailbox urls include a message key for the message in question. + readonly attribute nsMsgKey messageKey; + + // this is to support multiple msg move/copy in one url + void setMoveCopyMsgKeys(in Array<nsMsgKey> keysToFlag); + void getMoveCopyMsgHdrForIndex(in unsigned long msgIndex, out nsIMsgDBHdr msgHdr); + readonly attribute unsigned long numMoveCopyMsgs; + attribute unsigned long curMoveCopyMsgIndex; + // mailbox urls to fetch a mail message can specify the size of + // the message... + // this saves us the trouble of having to open up the msg db and ask + // ourselves... + attribute unsigned long messageSize; + + attribute nsMailboxAction mailboxAction; + + /* these are nsMailboxActions */ + const long ActionParseMailbox = 0; + const long ActionFetchMessage = 1; + const long ActionCopyMessage = 2; + const long ActionMoveMessage = 3; + const long ActionSaveMessageToDisk = 4; + const long ActionAppendMessageToDisk = 5; + const long ActionFetchPart = 6; +}; |