diff -r 000000000000 -r 6474c204b198 intl/locale/src/nsLocaleConstructors.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/intl/locale/src/nsLocaleConstructors.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,79 @@ +/* -*- 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 nsLocaleConstructors_h__ +#define nsLocaleConstructors_h__ + +#include "nsCollationCID.h" +#include "nsDateTimeFormatCID.h" +#include "mozilla/ModuleUtils.h" +#include "nsILocaleService.h" +#include "nsIScriptableDateFormat.h" +#include "nsIServiceManager.h" +#include "nsLanguageAtomService.h" +#include "nsPlatformCharset.h" + +#if defined(XP_MACOSX) +#define USE_MAC_LOCALE +#endif + +#if defined(XP_UNIX) && !defined(XP_MACOSX) +#define USE_UNIX_LOCALE +#endif + +#ifdef XP_WIN +#include "windows/nsCollationWin.h" +#include "windows/nsDateTimeFormatWin.h" +#endif + +#ifdef USE_MAC_LOCALE +#include "mac/nsCollationMacUC.h" +#include "mac/nsDateTimeFormatMac.h" +#endif + +#ifdef USE_UNIX_LOCALE +#include "unix/nsCollationUnix.h" +#include "unix/nsDateTimeFormatUnix.h" +#endif + +#define NSLOCALE_MAKE_CTOR(ctor_, iface_, func_) \ +static nsresult \ +ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \ +{ \ + *aResult = nullptr; \ + if (aOuter) \ + return NS_ERROR_NO_AGGREGATION; \ + iface_* inst; \ + nsresult rv = func_(&inst); \ + if (NS_SUCCEEDED(rv)) { \ + rv = inst->QueryInterface(aIID, aResult); \ + NS_RELEASE(inst); \ + } \ + return rv; \ +} + + +NSLOCALE_MAKE_CTOR(CreateLocaleService, nsILocaleService, NS_NewLocaleService) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCollationFactory) +//NS_GENERIC_FACTORY_CONSTRUCTOR(nsScriptableDateTimeFormat) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsLanguageAtomService) +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPlatformCharset, Init) + +#ifdef XP_WIN +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCollationWin) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDateTimeFormatWin) +#endif + +#ifdef USE_UNIX_LOCALE +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCollationUnix) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDateTimeFormatUnix) +#endif + +#ifdef USE_MAC_LOCALE +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCollationMacUC) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDateTimeFormatMac) +#endif + +#endif