xref: /haiku/headers/private/libroot/locale/ICUCollateData.h (revision c894d1868ef1d23e5536bfdbd8608402cef14607)
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