diff options
Diffstat (limited to 'mailnews/local/public/nsIPop3Service.idl')
-rw-r--r-- | mailnews/local/public/nsIPop3Service.idl | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/mailnews/local/public/nsIPop3Service.idl b/mailnews/local/public/nsIPop3Service.idl new file mode 100644 index 000000000..4c3e9a28e --- /dev/null +++ b/mailnews/local/public/nsIPop3Service.idl @@ -0,0 +1,128 @@ +/* -*- 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 "nsIUrlListener.idl" +#include "nsIPop3IncomingServer.idl" +#include "nsIMsgFolder.idl" + +interface nsIURI; +interface nsIMsgWindow; +interface nsIMsgFolder; + +[scriptable, uuid(7302fd8e-946f-4ae3-9468-0fb3a7706c51)] +interface nsIPop3ServiceListener : nsISupports { + /** + * Notification that a pop3 download has started. + * + * @param aFolder folder in which the download is started. + */ + void onDownloadStarted(in nsIMsgFolder aFolder); + + /** + * Notification about download progress. + * + * @param aFolder folder in which the download is happening. + * @param aNumDownloaded number of the messages that have been downloaded. + * @param aTotalToDownload total number of messages to download. + */ + void onDownloadProgress(in nsIMsgFolder aFolder, + in unsigned long aNumDownloaded, + in unsigned long aTotalToDownload); + + /** + * Notification that a download has completed. + * + * @param aFolder folder to which the download has completed. + * @param aNumberOfMessages number of the messages that were downloaded. + */ + void onDownloadCompleted(in nsIMsgFolder aFolder, + in unsigned long aNumberOfMessages); +}; + +/* + * The Pop3 Service is an interface designed to make building and running + * pop3 urls easier. + */ +[scriptable, uuid(96d3cc14-a842-4cdf-98f8-a4cc695f8b3b)] +interface nsIPop3Service : nsISupports { + /* + * All of these functions build pop3 urls and run them. If you want + * a handle on the running task, pass in a valid nsIURI ptr. You can later + * interrupt this action by asking the netlib service manager to interrupt + * the url you are given back. Remember to release aURL when you are + * done with it. Pass nullptr in for aURL if you + * don't care about the returned URL. + */ + + /* + * right now getting new mail doesn't require any user specific data. + * We use the default current identity for this information. I suspect that + * we'll eventually pass in an identity to this call so you can get + * mail on different pop3 accounts.... + */ + + nsIURI GetNewMail(in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, + in nsIMsgFolder aInbox, in nsIPop3IncomingServer popServer); + + nsIURI CheckForNewMail(in nsIMsgWindow aMsgWindow, in nsIUrlListener aUrlListener, + in nsIMsgFolder inbox, in nsIPop3IncomingServer popServer); + + /** + * Verify that we can logon + * + * @param aServer - pop3 server we're logging on to. + * @param aUrlListener - gets called back with success or failure. + * @param aMsgWindow - nsIMsgWindow to use for notification callbacks. + * @return - the url that we run. + * + */ + nsIURI verifyLogon(in nsIMsgIncomingServer aServer, + in nsIUrlListener aUrlListener, + in nsIMsgWindow aMsgWindow); + + /** + * Add a listener for pop3 events like message download. This is + * used by the activity manager. + * + * @param aListener listener that gets notified of pop3 events. + */ + void addListener(in nsIPop3ServiceListener aListener); + + /** + * Remove a listener for pop3 events like message download. + * + * @param aListener listener to remove. + */ + void removeListener(in nsIPop3ServiceListener aListener); + + /** + * Send the notification that a pop3 download has started. + * This is called from the nsIPop3Sink code. + * + * @param aFolder folder in which the download is started. + */ + void notifyDownloadStarted(in nsIMsgFolder aFolder); + + /** + * Send notification about download progress. + * + * @param aFolder folder in which the download is happening. + * @param aNumDownloaded number of the messages that have been downloaded. + * @param aTotalToDownload total number of messages to download. + */ + void notifyDownloadProgress(in nsIMsgFolder aFolder, + in unsigned long aNumDownloaded, + in unsigned long aTotalToDownload); + /** + * Send the notification that a download has completed. + * This is called from the nsIPop3Sink code. + * + * @param aFolder folder to which the download has completed. + * @param aNumberOfMessages number of the messages that were downloaded. + */ + void notifyDownloadCompleted(in nsIMsgFolder aFolder, + in unsigned long aNumberOfMessages); +}; |