server/dep/acelite/ace/Date_Time.inl
2023-01-01 00:55:45 +00:00

219 lines
4.3 KiB
C++

// -*- C++ -*-
//
// $Id: Date_Time.inl 80826 2008-03-04 14:51:23Z wotte $
#include "ace/Global_Macros.h"
#include "ace/Time_Value.h"
#include "ace/OS_NS_sys_time.h"
#include "ace/OS_NS_time.h"
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_INLINE void
ACE_Date_Time::update (const ACE_Time_Value& timevalue)
{
#if defined (ACE_HAS_WINCE)
// CE doesn't do localtime().
FILETIME file_time = timevalue;
FILETIME local_file_time;
SYSTEMTIME sys_time;
::FileTimeToLocalFileTime (&file_time, &local_file_time);
::FileTimeToSystemTime (&local_file_time, &sys_time);
this->day_ = sys_time.wDay;
this->month_ = sys_time.wMonth;
this->year_ = sys_time.wYear;
this->hour_ = sys_time.wHour;
this->minute_ = sys_time.wMinute;
this->second_ = sys_time.wSecond;
this->microsec_ = sys_time.wMilliseconds * 1000;
this->wday_ = sys_time.wDayOfWeek;
#else
time_t time = timevalue.sec ();
struct tm tm_time;
ACE_OS::localtime_r (&time, &tm_time);
this->day_ = tm_time.tm_mday;
this->month_ = tm_time.tm_mon + 1; // localtime's months are 0-11
this->year_ = tm_time.tm_year + 1900; // localtime reports years since 1900
this->hour_ = tm_time.tm_hour;
this->minute_ = tm_time.tm_min;
this->second_ = tm_time.tm_sec;
this->microsec_ = timevalue.usec ();
this->wday_ = tm_time.tm_wday;
#endif /* ACE_HAS_WINCE */
}
ACE_INLINE void
ACE_Date_Time::update (void)
{
ACE_TRACE ("ACE_Date_Time::update");
update(ACE_OS::gettimeofday ());
}
ACE_INLINE
ACE_Date_Time::ACE_Date_Time (void)
{
ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
this->update ();
}
ACE_INLINE
ACE_Date_Time::ACE_Date_Time (const ACE_Time_Value& timevalue)
{
ACE_TRACE ("ACE_Date_Time::ACE_Date_Time: timevalue");
this->update (timevalue);
}
// Constructor with init values, no check for validy
ACE_INLINE
ACE_Date_Time::ACE_Date_Time (long day,
long month,
long year,
long hour,
long minute,
long second,
long microsec,
long wday)
: day_ (day),
month_ (month),
year_ (year),
hour_ (hour),
minute_ (minute),
second_ (second),
microsec_ (microsec),
wday_ (wday)
{
ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
}
// set/get portions of ACE_Date_Time, no check for validy
// get day
ACE_INLINE long
ACE_Date_Time::day (void) const
{
ACE_TRACE ("ACE_Date_Time::day");
return day_;
}
// set day
ACE_INLINE void
ACE_Date_Time::day (long day)
{
ACE_TRACE ("ACE_Date_Time::day");
day_ = day;
}
// get month
ACE_INLINE long
ACE_Date_Time::month (void) const
{
ACE_TRACE ("ACE_Date_Time::month");
return month_;
}
// set month
ACE_INLINE void
ACE_Date_Time::month (long month)
{
ACE_TRACE ("ACE_Date_Time::month");
month_ = month;
}
// get year
ACE_INLINE long
ACE_Date_Time::year (void) const
{
ACE_TRACE ("ACE_Date_Time::year");
return year_;
}
// set year
ACE_INLINE void
ACE_Date_Time::year (long year)
{
ACE_TRACE ("ACE_Date_Time::year");
year_ = year;
}
// get hour
ACE_INLINE long
ACE_Date_Time::hour (void) const
{
ACE_TRACE ("ACE_Date_Time::hour");
return hour_;
}
// set hour
ACE_INLINE void
ACE_Date_Time::hour (long hour)
{
ACE_TRACE ("ACE_Date_Time::hour");
hour_ = hour;
}
// get minute
ACE_INLINE long
ACE_Date_Time::minute (void) const
{
ACE_TRACE ("ACE_Date_Time::minute");
return minute_;
}
// set minute
ACE_INLINE void
ACE_Date_Time::minute (long minute)
{
ACE_TRACE ("ACE_Date_Time::minute");
minute_ = minute;
}
// get second
ACE_INLINE long
ACE_Date_Time::second (void) const
{
ACE_TRACE ("ACE_Date_Time::second");
return second_;
}
// set second
ACE_INLINE void
ACE_Date_Time::second (long second)
{
ACE_TRACE ("ACE_Date_Time::second");
second_ = second;
}
// get microsec
ACE_INLINE long
ACE_Date_Time::microsec (void) const
{
ACE_TRACE ("ACE_Date_Time::microsec");
return microsec_;
}
// set microsec
ACE_INLINE void
ACE_Date_Time::microsec (long microsec)
{
ACE_TRACE ("ACE_Date_Time::microsec");
microsec_ = microsec;
}
// get wday
ACE_INLINE long
ACE_Date_Time::weekday (void) const
{
ACE_TRACE ("ACE_Date_Time::weekday");
return wday_;
}
// set wday
ACE_INLINE void
ACE_Date_Time::weekday (long wday)
{
ACE_TRACE ("ACE_Date_Time::weekday");
wday_ = wday;
}
ACE_END_VERSIONED_NAMESPACE_DECL