OWBI1_CIMDateTime.hpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * Copyright (C) 2001-2004 Vintela, Inc. All rights reserved.
00003 *
00004 * Redistribution and use in source and binary forms, with or without
00005 * modification, are permitted provided that the following conditions are met:
00006 *
00007 *  - Redistributions of source code must retain the above copyright notice,
00008 *    this list of conditions and the following disclaimer.
00009 *
00010 *  - Redistributions in binary form must reproduce the above copyright notice,
00011 *    this list of conditions and the following disclaimer in the documentation
00012 *    and/or other materials provided with the distribution.
00013 *
00014 *  - Neither the name of Vintela, Inc. nor the names of its
00015 *    contributors may be used to endorse or promote products derived from this
00016 *    software without specific prior written permission.
00017 *
00018 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
00019 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021 * ARE DISCLAIMED. IN NO EVENT SHALL Vintela, Inc. OR THE CONTRIBUTORS
00022 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00023 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00024 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00025 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00026 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00027 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00028 * POSSIBILITY OF SUCH DAMAGE.
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 // TODO: Document valid ranges for values in the class and add asserts for them.
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 } // end namespace OWBI1
00350 
00351 #endif

Generated on Thu Feb 9 08:48:25 2006 for openwbem by  doxygen 1.4.6