haiku/headers/private/libroot/locale/ICUCategoryData.h
Ingo Weinhold 25dc253d6a * Merged weak-symbols branch.
* Fixed trivial merge conflict in src/system/libroot/posix/locale/nl_langinfo.cpp
* Fixed gcc 2 compilation of src/system/glue/init_term_dyn.c.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-22 13:06:36 +00:00

56 lines
1.2 KiB
C++

/*
* Copyright 2010, Oliver Tappe, zooey@hirschkaefer.de.
* Distributed under the terms of the MIT License.
*/
#ifndef _ICU_CATEGORY_DATA_H
#define _ICU_CATEGORY_DATA_H
#include <unicode/locid.h>
#include <unicode/ucnv.h>
#include <unicode/unistr.h>
#include <SupportDefs.h>
namespace BPrivate {
namespace Libroot {
class ICUCategoryData {
public:
ICUCategoryData();
virtual ~ICUCategoryData();
virtual status_t SetTo(const Locale& locale,
const char* posixLocaleName);
virtual status_t SetToPosix();
const char * PosixLocaleName()
{ return fPosixLocaleName; }
protected:
status_t _ConvertUnicodeStringToLocaleconvEntry(
const UnicodeString& string,
char* destination, int destinationSize,
const char* defaultValue = "");
static const uint16 skMaxPosixLocaleNameLen = 128;
static const size_t skLCBufSize = 16;
Locale fLocale;
UConverter* fConverter;
char fPosixLocaleName[skMaxPosixLocaleNameLen];
char fGivenCharset[UCNV_MAX_CONVERTER_NAME_LENGTH];
private:
status_t _SetupConverter();
};
} // namespace Libroot
} // namespace BPrivate
#endif // _ICU_CATEGORY_DATA_H