diff options
Diffstat (limited to 'mailnews/import/public/nsIImportGeneric.idl')
-rw-r--r-- | mailnews/import/public/nsIImportGeneric.idl | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/mailnews/import/public/nsIImportGeneric.idl b/mailnews/import/public/nsIImportGeneric.idl new file mode 100644 index 000000000..1496bac65 --- /dev/null +++ b/mailnews/import/public/nsIImportGeneric.idl @@ -0,0 +1,89 @@ +/* -*- 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/. */ + +/* + Interface for importing anything. You are responsible for opening + up UI and doing all of the work to make it happen. + +*/ + +#include "nsISupports.idl" + +interface nsISupportsString; + +[scriptable, uuid(469d7d5f-144c-4f07-9661-e49e40156348)] +interface nsIImportGeneric : nsISupports +{ + /* Use these to prepare for the import */ + /* + "mailInterface" - nsIImportMail interface + "mailBoxes" - nsIArray of nsIImportMailboxDescriptors + "mailLocation" - nsIFile, source location for mail + + "addressInterface" - nsIImportAddressBooks interface + "addressBooks" - nsIArray of nsIImportABDescriptors + "addressLocation" - src location of address books (if needed!) + "addressDestination" - uri of destination address book or null if + new address books will be created. + */ + nsISupports GetData( in string dataId); + + void SetData( in string dataId, in nsISupports pData); + + /* + "isInstalled" - if true then mail can be automatically located. + "canUserSetLocation" - if true then the user can specify the location + to look for mail. If both are false, then there is no way + to import mail from this format! + TBD: How to specify whether or not a file or a directory + should be specified? + "autoFind" - for address books, is the address book located without + using the file system - i.e. addressLocation is irrelevant. + "supportsMultiple" - 1 or 1..n address books are imported by this format? + + */ + long GetStatus( in string statusKind); + + /* + When you are ready to import call this. If it returns TRUE then + you must call BeginImport and then repeatedly call GetProgress until + it returns 100 % done or until ContinueImport returns FALSE. + If this returns FALSE then BeginImport will begin and finish the import + before it returns. + */ + boolean WantsProgress(); + + /* Use these for the actual import */ + /* Begin import is expected to start a new thread UNLESS WantsProgress returned + FALSE. It is REQUIRED to call WantsProgress before calling BeginImport. + If WantsProgress was false then this will return the success or + failure of the import. Failure can be reported even if WantsProgress + returned TRUE. + */ + boolean BeginImport(in nsISupportsString successLog, + in nsISupportsString errorLog); + /* + If WantsProgress returned TRUE then this will indicate if the import should + continue. If this returns FALSE then no other methods should be called + and the error log should be shown to the user. + */ + boolean ContinueImport(); + /* + Returns the percentage done. When this returns 100 then the import is done. + (only valid if WantsProgress returned true) + */ + long GetProgress(); + /* + Cancel an import in progress. Again, this is only valid if WantsProgress + returned true. + */ + void CancelImport(); +}; + + + +%{ C++ + +%} |