diff options
Diffstat (limited to 'mailnews/news/public/nsINNTPNewsgroupList.idl')
-rw-r--r-- | mailnews/news/public/nsINNTPNewsgroupList.idl | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/mailnews/news/public/nsINNTPNewsgroupList.idl b/mailnews/news/public/nsINNTPNewsgroupList.idl new file mode 100644 index 000000000..537293c44 --- /dev/null +++ b/mailnews/news/public/nsINNTPNewsgroupList.idl @@ -0,0 +1,93 @@ +/* -*- Mode: IDL; 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" + +interface nsIMsgNewsFolder; +interface nsINntpUrl; +interface nsIMsgWindow; + +/** + * A utility class for nsINNTPProtocol that handles the list of new headers. + */ +[scriptable, uuid(579aa17b-4c77-465d-8eb6-feaa927cb19c)] +interface nsINNTPNewsgroupList : nsISupports { + + void initialize(in nsINntpUrl runningURL, in nsIMsgNewsFolder newsFolder); + + long getRangeOfArtsToDownload(in nsIMsgWindow aMsgWindow, in long first_message, + in long last_message, + in long maxextra, + out long real_first_message, + out long real_last_message); + + void addToKnownArticles(in long first_message, in long last_message); + + /** + * Initializes the internal state to get the messages. + * + * This method should be called before sending the line + * <tt>XOVER @arg first_message-@arg last_message</tt> to the server. + * + * @param first_message The first message of the download range. + * @param last_message The last message of the download range. + */ + void initXOVER(in long first_message, in long last_message); + void processXOVERLINE(in string line, out unsigned long status); + void resetXOVER(); + void finishXOVERLINE(in long status, out long newstatus); + + /** + * Initalizes the state in preparation for a call to XHDR. + * + * @return The next header to get, or an empty string if done. + */ + ACString initXHDR(); + /** + * Processes a line of the server's response to XHDR. + * + * It will calculate the message number and other information itself, so the + * unadulterated line itself should be sent. + * + * @param aLine The line as sent from the server. + */ + void processXHDRLine(in ACString aLine); + + /** + * Initalizes the internal state to process a HEAD command. + * + * This method should be called before sending the line + * <tt>HEAD @arg aMessage</tt> to the server. + * + * @param aMessage The message number that will be sent. + */ + void initHEAD(in long aMessage); + /** + * Processes a line of the server's response to HEAD. + * + * This will not check for a quoted '.' at the beginning. + * + * @param aLine The line the server sent. + */ + void processHEADLine(in ACString aLine); + /** + * Manages the internal state if the call to HEAD failed. + * + * @param aMessage The message key that caused the HEAD failure. + */ + void HEADFailed(in long aMessage); + + /** + * Calls the filters after all messages have been processed. + * + * This method also cleans out some internal state relating to the messages + * that have been processed, so it should always be called at the end of + * XOVER/XHDR/HEAD processing. + */ + void callFilters(); + + attribute boolean getOldMessages; +}; + |