summaryrefslogtreecommitdiffstats
path: root/mailnews/addrbook/public/nsIAbMDBDirectory.idl
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/addrbook/public/nsIAbMDBDirectory.idl')
-rw-r--r--mailnews/addrbook/public/nsIAbMDBDirectory.idl71
1 files changed, 71 insertions, 0 deletions
diff --git a/mailnews/addrbook/public/nsIAbMDBDirectory.idl b/mailnews/addrbook/public/nsIAbMDBDirectory.idl
new file mode 100644
index 000000000..200fcd8ee
--- /dev/null
+++ b/mailnews/addrbook/public/nsIAbMDBDirectory.idl
@@ -0,0 +1,71 @@
+/* -*- 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();
+};