michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: /** michael@0: * We support two builds of the directory service provider. michael@0: * One, linked into the profile component, uses the internal michael@0: * string API. The other can be used by standalone embedding michael@0: * clients, and uses embed strings. michael@0: * To keep the code clean, we are using typedefs to equate michael@0: * embed/internal string types. We are also defining some michael@0: * internal macros in terms of the embedding strings API. michael@0: * michael@0: * When modifying the profile directory service provider, be michael@0: * sure to use methods supported by both the internal and michael@0: * embed strings APIs. michael@0: */ michael@0: michael@0: #ifndef MOZILLA_INTERNAL_API michael@0: michael@0: #include "nsEmbedString.h" michael@0: michael@0: typedef nsCString nsPromiseFlatCString; michael@0: typedef nsCString nsAutoCString; michael@0: michael@0: #define PromiseFlatCString nsCString michael@0: michael@0: #else michael@0: #include "nsString.h" michael@0: #include "nsPromiseFlatString.h" michael@0: #endif