michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- michael@0: * 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: * This Original Code has been modified by IBM Corporation. michael@0: * Modifications made by IBM described herein are michael@0: * Copyright (c) International Business Machines michael@0: * Corporation, 2000 michael@0: * michael@0: * Modifications to Mozilla code or documentation michael@0: * identified per MPL Section 3.3 michael@0: * michael@0: * Date Modified by Description of modification michael@0: * 03/27/2000 IBM Corp. Added PR_CALLBACK for Optlink michael@0: * use in OS2 michael@0: */ michael@0: #ifndef nsLocale_h__ michael@0: #define nsLocale_h__ michael@0: michael@0: #include "nsStringFwd.h" michael@0: #include "nsILocale.h" michael@0: #include "plhash.h" michael@0: michael@0: class nsLocale : public nsILocale { michael@0: friend class nsLocaleService; michael@0: NS_DECL_THREADSAFE_ISUPPORTS michael@0: michael@0: public: michael@0: nsLocale(void); michael@0: virtual ~nsLocale(void); michael@0: michael@0: /* Declare methods from nsILocale */ michael@0: NS_DECL_NSILOCALE michael@0: michael@0: protected: michael@0: michael@0: NS_IMETHOD AddCategory(const nsAString& category, const nsAString& value); michael@0: michael@0: static PLHashNumber Hash_HashFunction(const void* key); michael@0: static int Hash_CompareNSString(const void* s1, const void* s2); michael@0: static int Hash_EnumerateDelete(PLHashEntry *he, int hashIndex, void *arg); michael@0: michael@0: PLHashTable* fHashtable; michael@0: uint32_t fCategoryCount; michael@0: michael@0: }; michael@0: michael@0: michael@0: #endif