haiku/headers/private/libroot/locale/ICUTimeData.h

79 lines
1.7 KiB
C
Raw Normal View History

/*
* Copyright 2010-2011, Oliver Tappe, zooey@hirschkaefer.de.
* Distributed under the terms of the MIT License.
*/
#ifndef _ICU_TIME_DATA_H
#define _ICU_TIME_DATA_H
#include "ICUCategoryData.h"
#include "LocaleBackend.h"
#include <unicode/datefmt.h>
#include <timelocal.h>
namespace BPrivate {
namespace Libroot {
class ICUMessagesData;
class ICUTimeData : public ICUCategoryData {
typedef ICUCategoryData inherited;
public:
ICUTimeData(pthread_key_t tlsKey,
struct lc_time_t& lcTimeInfo,
const ICUMessagesData& messagesData);
~ICUTimeData();
void Initialize(LocaleTimeDataBridge* dataBridge);
virtual status_t SetTo(const U_NAMESPACE_QUALIFIER Locale&
locale,
const char* posixLocaleName);
virtual status_t SetToPosix();
const char* GetLanginfo(int index);
const U_NAMESPACE_QUALIFIER Locale& ICULocaleForStrings() const;
private:
status_t _SetLCTimeEntries(const U_NAMESPACE_QUALIFIER
UnicodeString* strings,
char* destination, int entrySize,
int count, int maxCount);
status_t _SetLCTimePattern(U_NAMESPACE_QUALIFIER
DateFormat* format,
char* destination, int destinationSize);
char fMon[12][24];
char fMonth[12][64];
char fWday[7][24];
char fWeekday[7][64];
char fTimeFormat[24];
char fDateFormat[24];
char fDateTimeFormat[32];
char fAm[24];
char fPm[24];
char fDateTimeZoneFormat[32];
char fAltMonth[12][64];
char fMonthDayOrder[4];
char fAmPmFormat[32];
struct lc_time_t& fLCTimeInfo;
LocaleTimeDataBridge* fDataBridge;
const ICUMessagesData& fMessagesData;
};
} // namespace Libroot
} // namespace BPrivate
#endif // _ICU_TIME_DATA_H