/* -*- 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/. */ #include "nsISupports.idl" #include "MailNewsTypes2.idl" #include "nsIImapProtocol.idl" #include "nsIMailboxSpec.idl" interface nsIMsgMailNewsUrl; interface nsIImapMockChannel; interface nsIImapHeaderXferInfo; typedef long ImapOnlineCopyState; [scriptable, uuid(5f7484b0-68b4-11d3-a53e-0060b0fc04b7)] interface ImapOnlineCopyStateType { const long kInProgress = 0; const long kSuccessfulCopy = 1; const long kSuccessfulMove = 2; const long kSuccessfulDelete = 3; const long kFailedDelete = 4; const long kReadyForAppendData = 5; const long kFailedAppend = 6; const long kInterruptedState = 7; const long kFailedCopy = 8; const long kFailedMove = 9; }; [scriptable, uuid(525e1278-a39d-46d6-9dbc-b48c7e1d4faa)] interface nsIImapMailFolderSink : nsISupports { attribute boolean folderNeedsACLListed; attribute boolean folderNeedsSubscribing; attribute boolean folderNeedsAdded; attribute unsigned long aclFlags; attribute long uidValidity; /** * Whether we have asked the server for this folder's quota information. * If the server supports quotas, this occurs when the folder is opened. */ attribute boolean folderQuotaCommandIssued; /** * Set FolderQuotaData information * @param aFolderQuotaRoot The IMAP quota root for this folder, * as returned by the GETQUOTAROOT IMAP command. * @param aFolderQuotaUsedKB Used space, in KB, on this folder's quota root. * @param aFolderQuotaMaxKB Size, in KB, of this folder's quota root. **/ void setFolderQuotaData(in ACString aFolderQuotaRoot, in unsigned long aFolderQuotaUsedKB, in unsigned long aFolderQuotaMaxKB); /// Should we download all the rfc822 headers of messages, instead of subset. readonly attribute boolean shouldDownloadAllHeaders; readonly attribute char onlineDelimiter; void OnNewIdleMessages(); // Tell mail master about the newly selected mailbox void UpdateImapMailboxInfo(in nsIImapProtocol aProtocol, in nsIMailboxSpec aSpec); void UpdateImapMailboxStatus(in nsIImapProtocol aProtocol, in nsIMailboxSpec aSpec); /** * Used when downloading headers in chunks. * @param aSpec Mailbox spec of folder we're downloading headers for. * @returns true if more to download, false otherwise. * @returns total count of headers to download (across all chunks) * @returns an array of msg keys to download, array size is this chunk's size */ void getMsgHdrsToDownload(out boolean aMore, out long aTotalCount, out unsigned long aCount, [retval, array, size_is(aCount)] out nsMsgKey aKeys); void parseMsgHdrs(in nsIImapProtocol aProtocol, in nsIImapHeaderXferInfo aHdrXferInfo); void AbortHeaderParseStream(in nsIImapProtocol aProtocol) ; void OnlineCopyCompleted(in nsIImapProtocol aProtocol, in ImapOnlineCopyState aCopyState); void StartMessage(in nsIMsgMailNewsUrl aUrl); void EndMessage(in nsIMsgMailNewsUrl aUrl, in nsMsgKey uidOfMessage); void NotifySearchHit(in nsIMsgMailNewsUrl aUrl, in string hitLine); void copyNextStreamMessage(in boolean copySucceeded, in nsISupports copyState); void closeMockChannel(in nsIImapMockChannel aChannel); void setUrlState(in nsIImapProtocol aProtocol, in nsIMsgMailNewsUrl aUrl, in boolean isRunning, in boolean aSuspend, in nsresult status); void releaseUrlCacheEntry(in nsIMsgMailNewsUrl aUrl); void headerFetchCompleted(in nsIImapProtocol aProtocol); void setBiffStateAndUpdate(in long biffState); void progressStatusString(in nsIImapProtocol aProtocol, in string aMsgId, in wstring extraInfo); void percentProgress(in nsIImapProtocol aProtocol, in wstring aMessage, in long long aCurrentProgress, in long long aMaxProgressProgressInfo); void clearFolderRights(); void setCopyResponseUid(in string msgIdString, in nsIImapUrl aUrl); void setAppendMsgUid(in nsMsgKey newKey, in nsIImapUrl aUrl); ACString getMessageId(in nsIImapUrl aUrl); };