summaryrefslogtreecommitdiffstats
path: root/mailnews/addrbook/src/nsDirPrefs.h
diff options
context:
space:
mode:
Diffstat (limited to 'mailnews/addrbook/src/nsDirPrefs.h')
-rw-r--r--mailnews/addrbook/src/nsDirPrefs.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/mailnews/addrbook/src/nsDirPrefs.h b/mailnews/addrbook/src/nsDirPrefs.h
new file mode 100644
index 000000000..d27a4fcb5
--- /dev/null
+++ b/mailnews/addrbook/src/nsDirPrefs.h
@@ -0,0 +1,86 @@
+/* -*- 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/. */
+
+#ifndef _NSDIRPREFS_H_
+#define _NSDIRPREFS_H_
+
+#include "nsTArray.h"
+
+//
+// XXX nsDirPrefs is being greatly reduced if not removed altogether. Directory
+// Prefs etc. should be handled via their appropriate nsAb*Directory classes.
+//
+
+#define kPreviousListVersion 2
+#define kCurrentListVersion 3
+#define PREF_LDAP_GLOBAL_TREE_NAME "ldap_2"
+#define PREF_LDAP_VERSION_NAME "ldap_2.version"
+#define PREF_LDAP_SERVER_TREE_NAME "ldap_2.servers"
+
+#define kMainLdapAddressBook "ldap.mab" /* v3 main ldap address book file */
+
+/* DIR_Server.dirType */
+typedef enum
+{
+ LDAPDirectory,
+ HTMLDirectory,
+ PABDirectory,
+ MAPIDirectory,
+ FixedQueryLDAPDirectory = 777
+} DirectoryType;
+
+typedef enum
+{
+ idNone = 0, /* Special value */
+ idPrefName,
+ idPosition,
+ idDescription,
+ idFileName,
+ idUri,
+ idType
+} DIR_PrefId;
+
+#define DIR_Server_typedef 1 /* this quiets a redeclare warning in libaddr */
+
+typedef struct DIR_Server
+{
+ /* Housekeeping fields */
+ char *prefName; /* preference name, this server's subtree */
+ int32_t position; /* relative position in server list */
+
+ /* General purpose fields */
+ char *description; /* human readable name */
+ char *fileName; /* XP path name of local DB */
+ DirectoryType dirType;
+ char *uri; // URI of the address book
+
+ // Set whilst saving the server to avoid updating it again
+ bool savingServer;
+} DIR_Server;
+
+/* We are developing a new model for managing DIR_Servers. In the 4.0x world, the FEs managed each list.
+ Calls to FE_GetDirServer caused the FEs to manage and return the DIR_Server list. In our new view of the
+ world, the back end does most of the list management so we are going to have the back end create and
+ manage the list. Replace calls to FE_GetDirServers() with DIR_GetDirServers(). */
+
+nsTArray<DIR_Server*>* DIR_GetDirectories();
+DIR_Server* DIR_GetServerFromList(const char* prefName);
+nsresult DIR_ShutDown(void); /* FEs should call this when the app is shutting down. It frees all DIR_Servers regardless of ref count values! */
+
+nsresult DIR_AddNewAddressBook(const nsAString &dirName,
+ const nsACString &fileName,
+ const nsACString &uri,
+ DirectoryType dirType,
+ const nsACString &prefName,
+ DIR_Server** pServer);
+nsresult DIR_ContainsServer(DIR_Server* pServer, bool *hasDir);
+
+nsresult DIR_DeleteServerFromList (DIR_Server *);
+
+void DIR_SavePrefsForOneServer(DIR_Server *server);
+
+void DIR_SetServerFileName(DIR_Server* pServer);
+
+#endif /* dirprefs.h */