1a3f66598SOliver Tappe /* 2*c894d186SOliver Tappe * Copyright 2010-2011, Oliver Tappe, zooey@hirschkaefer.de. 3a3f66598SOliver Tappe * Distributed under the terms of the MIT License. 4a3f66598SOliver Tappe */ 5a3f66598SOliver Tappe #ifndef _ICU_COLLATE_DATA_H 6a3f66598SOliver Tappe #define _ICU_COLLATE_DATA_H 7a3f66598SOliver Tappe 8a3f66598SOliver Tappe 9a3f66598SOliver Tappe #include "ICUCategoryData.h" 10a3f66598SOliver Tappe 11a3f66598SOliver Tappe #include <unicode/coll.h> 12a3f66598SOliver Tappe 13a3f66598SOliver Tappe 14a3f66598SOliver Tappe namespace BPrivate { 1525dc253dSIngo Weinhold namespace Libroot { 16a3f66598SOliver Tappe 17a3f66598SOliver Tappe 18a3f66598SOliver Tappe class ICUCollateData : public ICUCategoryData { 19a3f66598SOliver Tappe typedef ICUCategoryData inherited; 20a3f66598SOliver Tappe 21a3f66598SOliver Tappe public: 22bf5ff480SOliver Tappe ICUCollateData(pthread_key_t tlsKey); 23a3f66598SOliver Tappe virtual ~ICUCollateData(); 24a3f66598SOliver Tappe 25a3f66598SOliver Tappe virtual status_t SetTo(const Locale& locale, 26a3f66598SOliver Tappe const char* posixLocaleName); 27a3f66598SOliver Tappe virtual status_t SetToPosix(); 28a3f66598SOliver Tappe 29a3f66598SOliver Tappe status_t Strcoll(const char* a, const char* b, int& out); 30a3f66598SOliver Tappe status_t Strxfrm(char* out, const char* in, size_t size, 31a3f66598SOliver Tappe size_t& outSize); 32a3f66598SOliver Tappe 33a3f66598SOliver Tappe private: 34a3f66598SOliver Tappe status_t _ToUnicodeString(const char* in, 35a3f66598SOliver Tappe UnicodeString& out); 36a3f66598SOliver Tappe 37a3f66598SOliver Tappe Collator* fCollator; 38a3f66598SOliver Tappe }; 39a3f66598SOliver Tappe 40a3f66598SOliver Tappe 4125dc253dSIngo Weinhold } // namespace Libroot 42a3f66598SOliver Tappe } // namespace BPrivate 43a3f66598SOliver Tappe 44a3f66598SOliver Tappe 45a3f66598SOliver Tappe #endif // _ICU_COLLATE_DATA_H 46