libroot: implement timegm calling the ICU backend

Change-Id: Ib4de4288e061670acbc2edea3671cee029305d33
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3748
Reviewed-by: Axel Dörfler <[email protected]>
This commit is contained in:
Jérôme Duval
2021-02-24 05:51:44 +00:00
parent 02ccdc6fa1
commit c1e6e51a05
7 changed files with 82 additions and 22 deletions
@@ -73,6 +73,8 @@ public:
virtual status_t Mktime(struct tm* inOutTm, time_t& timeOut);
virtual status_t Timegm(struct tm* inOutTm, time_t& timeOut);
private:
const char* _QueryLocale(int category);
const char* _SetPosixLocale(int category);
@@ -34,11 +34,17 @@ public:
status_t Mktime(struct tm* inOutTm, time_t& timeOut);
status_t Timegm(struct tm* inOutTm, time_t& timeOut);
private:
status_t _FillTmValues(const U_NAMESPACE_QUALIFIER
TimeZone* icuTimeZone,
const time_t* inTime, struct tm* tmOut);
status_t _Mktime(const U_NAMESPACE_QUALIFIER
TimeZone* icuTimeZone,
struct tm* inOutTm, time_t& timeOut);
const ICUTimeData& fTimeData;
TimeConversionDataBridge* fDataBridge;
@@ -157,6 +157,8 @@ public:
struct tm* tmOut) = 0;
virtual status_t Mktime(struct tm* inOutTm, time_t& timeOut) = 0;
virtual status_t Timegm(struct tm* inOutTm, time_t& timeOut) = 0;
virtual void Initialize(LocaleDataBridge* dataBridge) = 0;
static status_t LoadBackend();