diff options
author | Matt A. Tobin <email@mattatobin.com> | 2019-11-03 00:17:46 -0400 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2019-11-03 00:17:46 -0400 |
commit | 302bf1b523012e11b60425d6eee1221ebc2724eb (patch) | |
tree | b191a895f8716efcbe42f454f37597a545a6f421 /mailnews/addrbook/src/nsAbOSXDirFactory.cpp | |
parent | 21b3f6247403c06f85e1f45d219f87549862198f (diff) | |
download | UXP-302bf1b523012e11b60425d6eee1221ebc2724eb.tar UXP-302bf1b523012e11b60425d6eee1221ebc2724eb.tar.gz UXP-302bf1b523012e11b60425d6eee1221ebc2724eb.tar.lz UXP-302bf1b523012e11b60425d6eee1221ebc2724eb.tar.xz UXP-302bf1b523012e11b60425d6eee1221ebc2724eb.zip |
Issue #1258 - Part 1: Import mailnews, ldap, and mork from comm-esr52.9.1
Diffstat (limited to 'mailnews/addrbook/src/nsAbOSXDirFactory.cpp')
-rw-r--r-- | mailnews/addrbook/src/nsAbOSXDirFactory.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/mailnews/addrbook/src/nsAbOSXDirFactory.cpp b/mailnews/addrbook/src/nsAbOSXDirFactory.cpp new file mode 100644 index 000000000..e9f2d7d3b --- /dev/null +++ b/mailnews/addrbook/src/nsAbOSXDirFactory.cpp @@ -0,0 +1,50 @@ +/* -*- 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 "nsAbOSXDirFactory.h" +#include "nsAbBaseCID.h" +#include "nsEnumeratorUtils.h" +#include "nsIAbDirectory.h" +#include "nsIAbManager.h" +#include "nsStringGlue.h" +#include "nsServiceManagerUtils.h" +#include "nsAbOSXDirectory.h" + +NS_IMPL_ISUPPORTS(nsAbOSXDirFactory, nsIAbDirFactory) + +NS_IMETHODIMP +nsAbOSXDirFactory::GetDirectories(const nsAString &aDirName, + const nsACString &aURI, + const nsACString &aPrefName, + nsISimpleEnumerator **aDirectories) +{ + NS_ENSURE_ARG_POINTER(aDirectories); + + *aDirectories = nullptr; + + nsresult rv; + nsCOMPtr<nsIAbManager> abManager(do_GetService(NS_ABMANAGER_CONTRACTID, &rv)); + NS_ENSURE_SUCCESS(rv, rv); + + nsCOMPtr<nsIAbDirectory> directory; + rv = abManager->GetDirectory(NS_LITERAL_CSTRING(NS_ABOSXDIRECTORY_URI_PREFIX "/"), + getter_AddRefs(directory)); + NS_ENSURE_SUCCESS(rv, rv); + + nsCOMPtr<nsIAbOSXDirectory> osxDirectory(do_QueryInterface(directory, &rv)); + NS_ENSURE_SUCCESS(rv, rv); + + rv = osxDirectory->AssertChildNodes(); + NS_ENSURE_SUCCESS(rv, rv); + + return NS_NewSingletonEnumerator(aDirectories, osxDirectory); +} + +// No actual deletion, since you cannot create the address books from Mozilla. +NS_IMETHODIMP +nsAbOSXDirFactory::DeleteDirectory(nsIAbDirectory *aDirectory) +{ + return NS_OK; +} |