gecko-dev/intl/locale/nsCollation.h
Wes Kocher a9ce32d9a5 Backed out 2 changesets (bug 1335983) for build bustage a=backout
Backed out changeset 5a9559ded976 (bug 1335983)
Backed out changeset de2b0d90e2da (bug 1335983)

MozReview-Commit-ID: 377KQDU1QqJ
2017-02-07 12:34:30 -08:00

52 lines
1.2 KiB
C++

/* -*- 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 nsCollation_h__
#define nsCollation_h__
#include "nsICollation.h"
#include "nsCOMPtr.h"
#include "mozilla/Attributes.h"
class nsIUnicodeEncoder;
// Create a collation interface for an input locale.
//
class nsCollationFactory final : public nsICollationFactory {
~nsCollationFactory() {}
public:
NS_DECL_ISUPPORTS
NS_IMETHOD CreateCollation(nsILocale* locale, nsICollation** instancePtr) override;
nsCollationFactory() {}
};
struct nsCollation {
public:
nsCollation();
~nsCollation();
// normalize string before collation key generation
nsresult NormalizeString(const nsAString& stringIn, nsAString& stringOut);
// charset conversion util, C string buffer is allocate by PR_Malloc, caller should call PR_Free
nsresult SetCharset(const char* aCharset);
nsresult UnicodeToChar(const nsAString& aSrc, char** dst);
protected:
nsCOMPtr <nsIUnicodeEncoder> mEncoder;
};
#endif /* nsCollation_h__ */