mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-27 02:47:31 +09:00
130 lines
3.5 KiB
Text
130 lines
3.5 KiB
Text
/* 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"
|
|
|
|
interface nsIMsgFolder;
|
|
interface nsIArray;
|
|
interface nsIMutableArray;
|
|
|
|
[scriptable, uuid(7512f927-b8f0-48c4-b101-03e859e61281)]
|
|
interface nsIAutoSyncState : nsISupports {
|
|
|
|
/**
|
|
* Auto-Sync states.
|
|
*
|
|
* ***WARNING***: If you change these, be sure to update stateStrings in
|
|
* nsAutoSyncState.cpp. If you do not, out-of-bounds memory accesses may
|
|
* happen.
|
|
*/
|
|
|
|
/** sync'd and no pending messages */
|
|
const long stCompletedIdle = 0;
|
|
|
|
/** STATUS issued. Will check to see if any counts changed since last STATUS */
|
|
const long stStatusIssued = 1;
|
|
|
|
/**
|
|
* Status found new messages. Update should be issued next. Status most
|
|
* likely was issued by non-autosync code (e.g., check other folders for
|
|
* new messages).
|
|
*/
|
|
const long stUpdateNeeded = 2;
|
|
|
|
/** Update issued. Will figure out if there are any bodies to download */
|
|
const long stUpdateIssued = 3;
|
|
|
|
/** Message body download in progress */
|
|
const long stDownloadInProgress = 4;
|
|
|
|
/** ready to download the next group of messages */
|
|
const long stReadyToDownload = 5;
|
|
|
|
/**
|
|
* Puts the download queue offset to its previous position.
|
|
*/
|
|
void rollback();
|
|
|
|
/**
|
|
* Clears the download queue. Resets the offsets.
|
|
*/
|
|
void resetDownloadQ();
|
|
|
|
/**
|
|
* Rollbacks the offset to the previous position and
|
|
* changes the state to ready-to-download.
|
|
*/
|
|
void tryCurrentGroupAgain(in unsigned long aRetryCount);
|
|
|
|
/**
|
|
* Resets the retry counter.
|
|
*/
|
|
void resetRetryCounter();
|
|
|
|
/**
|
|
* Tests whether the given folder has the same imap server.
|
|
*/
|
|
boolean isSibling(in nsIAutoSyncState aAnotherStateObj);
|
|
|
|
/**
|
|
* Update the folder to find new message headers to download
|
|
*/
|
|
void updateFolder();
|
|
|
|
/**
|
|
* Downloads the bodies of the given messages from the server.
|
|
*/
|
|
void downloadMessagesForOffline(in nsIArray aMessageList);
|
|
|
|
/**
|
|
* Populates the given array with the keys of the messages that will
|
|
* be downloaded next.
|
|
*
|
|
* @param aSuggestedGroupSizeLimit suggested size per group in bytes
|
|
* @param aActualGroupSize total size of the messages in bytes in the group
|
|
*/
|
|
nsIMutableArray getNextGroupOfMessages(in unsigned long aSuggestedGroupSizeLimit,
|
|
out unsigned long aActualGroupSize);
|
|
|
|
/**
|
|
* Iterates through the existing headers of the folder to find
|
|
* the messages not downloaded yet.
|
|
*
|
|
* @param aNumberOfHeadersToProcess number of headers to be processed
|
|
* at this pass
|
|
*
|
|
* @return the number of headers left to process
|
|
*/
|
|
unsigned long processExistingHeaders(in unsigned long aNumberOfHeadersToProcess);
|
|
|
|
/**
|
|
* Last time the existing headers are completely processed.
|
|
*/
|
|
[noscript]readonly attribute PRTime lastSyncTime;
|
|
|
|
/**
|
|
* Last time the owner folder is updated.
|
|
*/
|
|
[noscript]attribute PRTime lastUpdateTime;
|
|
|
|
/**
|
|
* Download operation state.
|
|
*/
|
|
attribute long state;
|
|
|
|
/**
|
|
* Number of messages waiting to be downloaded.
|
|
*/
|
|
readonly attribute long pendingMessageCount;
|
|
|
|
/**
|
|
* Total number of messages in the download queue.
|
|
*/
|
|
readonly attribute long totalMessageCount;
|
|
|
|
/**
|
|
* The folder this auto-sync object is related to.
|
|
*/
|
|
readonly attribute nsIMsgFolder ownerFolder;
|
|
};
|