gecko-dev/intl/locale/nsCollation.h

52 lines
1.2 KiB
C
Raw Normal View History

1999-01-21 01:28:27 +00:00
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
2012-05-21 11:12:37 +00:00
* 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/. */
1999-01-21 01:28:27 +00:00
#ifndef nsCollation_h__
#define nsCollation_h__
#include "nsICollation.h"
#include "nsCOMPtr.h"
#include "mozilla/Attributes.h"
1999-01-21 01:28:27 +00:00
class nsIUnicodeEncoder;
1999-01-21 01:28:27 +00:00
// Create a collation interface for an input locale.
//
class nsCollationFactory final : public nsICollationFactory {
1999-01-21 01:28:27 +00:00
~nsCollationFactory() {}
1999-01-21 01:28:27 +00:00
public:
NS_DECL_ISUPPORTS
NS_IMETHOD CreateCollation(nsILocale* locale, nsICollation** instancePtr) override;
1999-01-21 01:28:27 +00:00
nsCollationFactory() {}
1999-01-21 01:28:27 +00:00
};
struct nsCollation {
1999-01-21 01:28:27 +00:00
public:
nsCollation();
~nsCollation();
// normalize string before collation key generation
nsresult NormalizeString(const nsAString& stringIn, nsAString& stringOut);
1999-01-21 01:28:27 +00:00
// 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);
1999-01-21 01:28:27 +00:00
protected:
nsCOMPtr <nsIUnicodeEncoder> mEncoder;
1999-01-21 01:28:27 +00:00
};
#endif /* nsCollation_h__ */