/* -*- 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 "nsISupports.idl" interface nsIFile; interface nsIAbDirectory; interface nsIAbCard; interface nsIAddrDatabase; %{C++ #define kMDBDirectoryRoot "moz-abmdbdirectory://" #define kMDBDirectoryRootLen 21 %} [scriptable, uuid(744072be-1ba0-46bc-af24-46e22567a2ea)] interface nsIAbMDBDirectory : nsISupports { // Creates a directory component from the // uriName, adds it to its children and returns // the component nsIAbDirectory addDirectory(in string uriName); /** * Supplies a nsIFile point to the database file for this directory * * @exception NS_ERROR_NOT_INITIALIZED If there is no filename preference * present or it is empty */ readonly attribute nsIFile databaseFile; /** * Supplies a nsIAddrDatabase that uses the databaseFile. See also * databaseFile for possible exceptions. */ readonly attribute nsIAddrDatabase database; // Mail list specific // // Removes all elements from the addressLists // property [noscript] void removeElementsFromAddressList(); // Specific to a directory which stores mail lists // // Adds a directory to the addressLists attribute void addMailListToDirectory(in nsIAbDirectory mailList); // Specific to a directory which is a mail list // // Copies mail list properties from the srcList void copyDBMailList(in nsIAbMDBDirectory srcListDB); // Adds a card to the addressList attribute void addAddressToList(in nsIAbCard card); // Removes items from the addressLists member void removeEmailAddressAt(in unsigned long aIndex); attribute unsigned long dbRowID; // Empty implementation, called by the data base [noscript] void notifyDirItemAdded(in nsISupports item); [noscript] void clearDatabase(); };