/* -*- 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 * XOVER @arg first_message-@arg last_message 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 * HEAD @arg aMessage 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; };