00001
00002
00003
00004
00005 #include "ace/Global_Macros.h"
00006 #include "ace/Time_Value.h"
00007 #include "ace/OS_NS_sys_time.h"
00008 #include "ace/OS_NS_time.h"
00009
00010 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00011
00012 ACE_INLINE void
00013 ACE_Date_Time::update (const ACE_Time_Value& timevalue)
00014 {
00015 #if defined (ACE_HAS_WINCE)
00016
00017 FILETIME file_time = timevalue;
00018 FILETIME local_file_time;
00019 SYSTEMTIME sys_time;
00020 ::FileTimeToLocalFileTime (&file_time, &local_file_time);
00021 ::FileTimeToSystemTime (&local_file_time, &sys_time);
00022 this->day_ = sys_time.wDay;
00023 this->month_ = sys_time.wMonth;
00024 this->year_ = sys_time.wYear;
00025 this->hour_ = sys_time.wHour;
00026 this->minute_ = sys_time.wMinute;
00027 this->second_ = sys_time.wSecond;
00028 this->microsec_ = sys_time.wMilliseconds * 1000;
00029 this->wday_ = sys_time.wDayOfWeek;
00030 #else
00031 time_t time = timevalue.sec ();
00032 struct tm tm_time;
00033 ACE_OS::localtime_r (&time, &tm_time);
00034 this->day_ = tm_time.tm_mday;
00035 this->month_ = tm_time.tm_mon + 1;
00036 this->year_ = tm_time.tm_year + 1900;
00037 this->hour_ = tm_time.tm_hour;
00038 this->minute_ = tm_time.tm_min;
00039 this->second_ = tm_time.tm_sec;
00040 this->microsec_ = timevalue.usec ();
00041 this->wday_ = tm_time.tm_wday;
00042 #endif
00043 }
00044
00045 ACE_INLINE void
00046 ACE_Date_Time::update (void)
00047 {
00048 ACE_TRACE ("ACE_Date_Time::update");
00049
00050 update(ACE_OS::gettimeofday ());
00051 }
00052
00053 ACE_INLINE
00054 ACE_Date_Time::ACE_Date_Time (void)
00055 {
00056 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
00057 this->update ();
00058 }
00059
00060 ACE_INLINE
00061 ACE_Date_Time::ACE_Date_Time (const ACE_Time_Value& timevalue)
00062 {
00063 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time: timevalue");
00064 this->update (timevalue);
00065 }
00066
00067
00068 ACE_INLINE
00069 ACE_Date_Time::ACE_Date_Time (long day,
00070 long month,
00071 long year,
00072 long hour,
00073 long minute,
00074 long second,
00075 long microsec,
00076 long wday)
00077 : day_ (day),
00078 month_ (month),
00079 year_ (year),
00080 hour_ (hour),
00081 minute_ (minute),
00082 second_ (second),
00083 microsec_ (microsec),
00084 wday_ (wday)
00085 {
00086 ACE_TRACE ("ACE_Date_Time::ACE_Date_Time");
00087 }
00088
00089
00090
00091
00092 ACE_INLINE long
00093 ACE_Date_Time::day (void) const
00094 {
00095 ACE_TRACE ("ACE_Date_Time::day");
00096 return day_;
00097 }
00098
00099
00100 ACE_INLINE void
00101 ACE_Date_Time::day (long day)
00102 {
00103 ACE_TRACE ("ACE_Date_Time::day");
00104 day_ = day;
00105 }
00106
00107
00108 ACE_INLINE long
00109 ACE_Date_Time::month (void) const
00110 {
00111 ACE_TRACE ("ACE_Date_Time::month");
00112 return month_;
00113 }
00114
00115
00116 ACE_INLINE void
00117 ACE_Date_Time::month (long month)
00118 {
00119 ACE_TRACE ("ACE_Date_Time::month");
00120 month_ = month;
00121 }
00122
00123
00124 ACE_INLINE long
00125 ACE_Date_Time::year (void) const
00126 {
00127 ACE_TRACE ("ACE_Date_Time::year");
00128 return year_;
00129 }
00130
00131
00132 ACE_INLINE void
00133 ACE_Date_Time::year (long year)
00134 {
00135 ACE_TRACE ("ACE_Date_Time::year");
00136 year_ = year;
00137 }
00138
00139
00140 ACE_INLINE long
00141 ACE_Date_Time::hour (void) const
00142 {
00143 ACE_TRACE ("ACE_Date_Time::hour");
00144 return hour_;
00145 }
00146
00147
00148 ACE_INLINE void
00149 ACE_Date_Time::hour (long hour)
00150 {
00151 ACE_TRACE ("ACE_Date_Time::hour");
00152 hour_ = hour;
00153 }
00154
00155
00156 ACE_INLINE long
00157 ACE_Date_Time::minute (void) const
00158 {
00159 ACE_TRACE ("ACE_Date_Time::minute");
00160 return minute_;
00161 }
00162
00163
00164 ACE_INLINE void
00165 ACE_Date_Time::minute (long minute)
00166 {
00167 ACE_TRACE ("ACE_Date_Time::minute");
00168 minute_ = minute;
00169 }
00170
00171
00172 ACE_INLINE long
00173 ACE_Date_Time::second (void) const
00174 {
00175 ACE_TRACE ("ACE_Date_Time::second");
00176 return second_;
00177 }
00178
00179
00180 ACE_INLINE void
00181 ACE_Date_Time::second (long second)
00182 {
00183 ACE_TRACE ("ACE_Date_Time::second");
00184 second_ = second;
00185 }
00186
00187
00188 ACE_INLINE long
00189 ACE_Date_Time::microsec (void) const
00190 {
00191 ACE_TRACE ("ACE_Date_Time::microsec");
00192 return microsec_;
00193 }
00194
00195
00196 ACE_INLINE void
00197 ACE_Date_Time::microsec (long microsec)
00198 {
00199 ACE_TRACE ("ACE_Date_Time::microsec");
00200 microsec_ = microsec;
00201 }
00202
00203
00204 ACE_INLINE long
00205 ACE_Date_Time::weekday (void) const
00206 {
00207 ACE_TRACE ("ACE_Date_Time::weekday");
00208 return wday_;
00209 }
00210
00211
00212 ACE_INLINE void
00213 ACE_Date_Time::weekday (long wday)
00214 {
00215 ACE_TRACE ("ACE_Date_Time::weekday");
00216 wday_ = wday;
00217 }
00218
00219 ACE_END_VERSIONED_NAMESPACE_DECL