diff options
Diffstat (limited to 'mailnews/compose/public/nsIMsgSendLater.idl')
-rw-r--r-- | mailnews/compose/public/nsIMsgSendLater.idl | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/mailnews/compose/public/nsIMsgSendLater.idl b/mailnews/compose/public/nsIMsgSendLater.idl new file mode 100644 index 000000000..524bb867f --- /dev/null +++ b/mailnews/compose/public/nsIMsgSendLater.idl @@ -0,0 +1,66 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 "nsIStreamListener.idl" + +interface nsIMsgStatusFeedback; +interface nsIMsgIdentity; +interface nsIMsgSendLaterListener; +interface nsIMsgFolder; + +/** + * nsIMsgSendLater is a service used for sending messages in the background. + * Messages should be saved to an identity's unsent messages folder, and then + * can be sent by calling sendUnsentMessages. + * + * Although the service supports passing identities as parameters, until bug + * 317803 is fixed, all identities use the same folder, and hence the option + * currently doesn't work. + */ +[scriptable, uuid(fa324a4b-4b87-4e9a-a3c0-af9071a358df)] +interface nsIMsgSendLater : nsIStreamListener +{ + /// Used to obtain status feedback for when messages are sent. + attribute nsIMsgStatusFeedback statusFeedback; + + /** + * Sends any unsent messages in the identity's unsent messages folder. + * + * @param aIdentity The identity to send messages for. + */ + void sendUnsentMessages(in nsIMsgIdentity aIdentity); + + /** + * Adds an listener to the service to receive notifications. + * + * @param aListener The listener to add. + */ + void addListener(in nsIMsgSendLaterListener aListener); + + /** + * Removes a listener from the service. + * + * @param aListener The listener to remove. + * @exception NS_ERROR_INVALID_ARG If the listener was not already added to + * the service. + */ + void removeListener(in nsIMsgSendLaterListener aListener); + + /** + * Returns the unsent messages folder for the identity. + */ + nsIMsgFolder getUnsentMessagesFolder(in nsIMsgIdentity userIdentity); + + /** + * Returns true if there are any unsent messages to send. + * + * @param aIdentity The identity whose folder to check for unsent messages. + * If not specified, all unsent message folders are checked. + */ + boolean hasUnsentMessages([optional] in nsIMsgIdentity aIdentity); + + /// Returns true if the service is currently sending messages. + readonly attribute boolean sendingMessages; +}; |