Date_Time.inl

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Date_Time.inl,v 4.2 2005/10/28 16:14:52 ossama Exp
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   // CE doesn't do localtime().
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;    // localtime's months are 0-11
00036   this->year_ = tm_time.tm_year + 1900; // localtime reports years since 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 /* ACE_HAS_WINCE */
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 // Constructor with init values, no check for validy
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 // set/get portions of ACE_Date_Time, no check for validy
00090 
00091 // get day
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 // set day
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 // get month
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 // set month
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 // get year
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 // set year
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 // get hour
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 // set hour
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 // get minute
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 // set minute
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 // get second
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 // set second
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 // get microsec
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 // set microsec
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 // get wday
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 // set wday
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

Generated on Thu Nov 9 09:41:49 2006 for ACE by doxygen 1.3.6