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