haiku/headers/private/libroot/locale/ICUTimeConversion.h
Oliver Tappe e8226ce48d * fix support for influencing tzset() via TZ environment variable
(now at least <std> and <offset> are supported properly)
* instead of creating a TimeZone object whenever needed, we now
  create it in tzset() and keep it around
* add tests for TZ to locale_test

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40788 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-03 00:34:51 +00:00

55 lines
1.1 KiB
C++

/*
* Copyright 2010, Oliver Tappe, zooey@hirschkaefer.de.
* Distributed under the terms of the MIT License.
*/
#ifndef _ICU_TIME_CONVERSION_H
#define _ICU_TIME_CONVERSION_H
#include <time.h>
#include <StorageDefs.h>
#include "ICUTimeData.h"
#include "LocaleBackend.h"
namespace BPrivate {
namespace Libroot {
class ICUTimeConversion {
public:
ICUTimeConversion(const ICUTimeData& timeData);
virtual ~ICUTimeConversion();
virtual void Initialize(
TimeConversionDataBridge* dataBridge);
status_t TZSet(const char* timeZoneID, const char* tz);
status_t Localtime(const time_t* inTime,
struct tm* tmOut);
status_t Gmtime(const time_t* inTime, struct tm* tmOut);
status_t Mktime(struct tm* inOutTm, time_t& timeOut);
private:
status_t _FillTmValues(const TimeZone* icuTimeZone,
const time_t* inTime, struct tm* tmOut);
const ICUTimeData& fTimeData;
TimeConversionDataBridge* fDataBridge;
TimeZone* fTimeZone;
char fTimeZoneID[B_FILE_NAME_LENGTH];
};
} // namespace Libroot
} // namespace BPrivate
#endif // _ICU_TIME_BACKEND_H