00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00036 #ifndef OWBI1_CIMDATETIME_HPP_INCLUDE_GUARD_
00037 #define OWBI1_CIMDATETIME_HPP_INCLUDE_GUARD_
00038 #include "OWBI1_config.h"
00039 #include "OWBI1_Types.hpp"
00040 #include "OWBI1_COWIntrusiveReference.hpp"
00041 #include "OWBI1_CIMException.hpp"
00042 #include "OWBI1_CIMNULL.hpp"
00043 #include "OWBI1_String.hpp"
00044 #include "OWBI1_CommonFwd.hpp"
00045
00046 namespace OWBI1
00047 {
00048
00049 OWBI1_DECLARE_APIEXCEPTION(CIMDateTime, OWBI1_COMMON_API);
00050
00051
00052
00113 class OWBI1_OWBI1PROVIFC_API CIMDateTime
00114 {
00115 public:
00116
00120 CIMDateTime();
00121 ~CIMDateTime();
00126 explicit CIMDateTime(CIMNULL_t);
00131 CIMDateTime(const CIMDateTime& arg);
00132
00133 enum EErrorCodes
00134 {
00135 E_INVALID_DATE_TIME_FORMAT
00136 };
00137
00147 explicit CIMDateTime(const String& arg);
00155 CIMDateTime(const DateTime& arg);
00161 explicit CIMDateTime(UInt64 microSeconds);
00162
00163 explicit CIMDateTime(const detail::CIMDateTimeRepRef& rep);
00164
00171 CIMDateTime& operator= (const CIMDateTime& arg);
00176 UInt16 getYear() const;
00181 UInt8 getMonth() const;
00186 UInt32 getDays() const;
00191 UInt32 getDay() const;
00196 UInt8 getHours() const;
00202 UInt8 getMinutes() const;
00208 UInt8 getSeconds() const;
00214 UInt32 getMicroSeconds() const;
00219 Int16 getUtc() const;
00226 bool equal(const CIMDateTime& arg) const;
00232 CIMDateTime& setYear(UInt16 arg);
00238 CIMDateTime& setMonth(UInt8 arg);
00244 CIMDateTime& setDays(UInt32 arg);
00250 CIMDateTime& setDay(UInt32 arg);
00256 CIMDateTime& setHours(UInt8 arg);
00262 CIMDateTime& setMinutes(UInt8 arg);
00268 CIMDateTime& setSeconds(UInt8 arg);
00274 CIMDateTime& setMicroSeconds(UInt32 arg);
00280 CIMDateTime& setUtc(Int16 arg);
00285 bool isInterval() const;
00289 void setInterval(bool val);
00294 void readObject(std::istream &istrm);
00299 void writeObject(std::ostream &ostrm) const;
00304 String toString() const;
00308 DateTime toDateTime() const;
00309
00310 typedef detail::CIMDateTimeRepRef CIMDateTime::*safe_bool;
00314 operator safe_bool () const;
00315 bool operator!() const;
00316
00317 detail::CIMDateTimeRepRef getRep() const;
00318 private:
00319
00320 #ifdef OWBI1_WIN32
00321 #pragma warning (push)
00322 #pragma warning (disable: 4251)
00323 #endif
00324
00325 detail::CIMDateTimeRepRef m_rep;
00326
00327 #ifdef OWBI1_WIN32
00328 #pragma warning (pop)
00329 #endif
00330
00331 friend OWBI1_OWBI1PROVIFC_API bool operator==(const CIMDateTime& x, const CIMDateTime& y);
00338 friend OWBI1_OWBI1PROVIFC_API bool operator<(const CIMDateTime& x, const CIMDateTime& y);
00339 };
00340 OWBI1_OWBI1PROVIFC_API std::ostream& operator<< (std::ostream& ostr, const CIMDateTime& arg);
00341
00342 bool operator!=(const CIMDateTime& x, const CIMDateTime& y);
00343 bool operator>(const CIMDateTime& x, const CIMDateTime& y);
00344 bool operator<=(const CIMDateTime& x, const CIMDateTime& y);
00345 bool operator>=(const CIMDateTime& x, const CIMDateTime& y);
00346
00347
00348
00349 }
00350
00351 #endif