version 1.2, 2001/03/23 20:19:20
|
version 1.13, 2002/04/10 17:24:08
|
|
|
//BEGIN_LICENSE |
//%///////////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM |
// Copyright (c) 2000, 2001 The Open group, BMC Software, Tivoli Systems, IBM |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a |
// Permission is hereby granted, free of charge, to any person obtaining a copy |
// copy of this software and associated documentation files (the "Software"), |
// of this software and associated documentation files (the "Software"), to |
// to deal in the Software without restriction, including without limitation |
// deal in the Software without restriction, including without limitation the |
// the rights to use, copy, modify, merge, publish, distribute, sublicense, |
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
// and/or sell copies of the Software, and to permit persons to whom the |
// sell copies of the Software, and to permit persons to whom the Software is |
// Software is furnished to do so, subject to the following conditions: |
// furnished to do so, subject to the following conditions: |
// | // |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT |
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
// DEALINGS IN THE SOFTWARE. |
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// | // |
//END_LICENSE |
//============================================================================== |
//BEGIN_HISTORY |
|
// | // |
// Author: |
// Author: Mike Brasher (mbrasher@bmc.com) |
// | // |
// $Log$ |
// Modified By: Karl Schopmeyer(k.schopmeyer@opengroup.org) |
// Revision 1.2 2001/03/23 20:19:20 mike |
|
// Reformatted documentation. Added a couple of ATTN's |
|
// | // |
// Revision 1.1 2001/02/18 18:39:06 mike |
//%///////////////////////////////////////////////////////////////////////////// |
// new |
|
// |
|
// Revision 1.2 2001/02/18 03:02:58 karl |
|
// comment cleanup |
|
// |
|
// Revision 1.1 2001/02/16 02:07:06 mike |
|
// Renamed many classes and headers (using new CIM prefixes). |
|
// |
|
// Revision 1.3 2001/02/06 17:04:03 karl |
|
// add documentation |
|
// |
|
// Revision 1.2 2001/01/24 13:54:09 karl |
|
// Add Doc++ Document Comments |
|
// |
|
// Revision 1.1.1.1 2001/01/14 19:50:41 mike |
|
// Pegasus import |
|
// |
|
// |
|
//END_HISTORY |
|
| |
#ifndef Pegasus_DateTime_h | #ifndef Pegasus_DateTime_h |
#define Pegasus_DateTime_h | #define Pegasus_DateTime_h |
| |
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
|
#include <Pegasus/Common/Array.h> |
#include <iostream> | #include <iostream> |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
/* ATTN: P3. Several functions should be added to this class for datetime manipulation |
|
including get and set each subcomponent (year, month, etc). isInterval, test for equality, |
|
create intervals from absolutes, possibly gett current time, Note that |
|
the Java rep is probably tostring, not get string, |
|
*/ |
|
|
/** | /** |
The CIMDateTime class represents the CIM datetime data type as a C++ class | The CIMDateTime class represents the CIM datetime data type as a C++ class |
CIMDateTime. A CIM datetime may contain a date or an interval. CIMDateTime | CIMDateTime. A CIM datetime may contain a date or an interval. CIMDateTime |
|
|
Where | Where |
| |
dddddddd = days | dddddddd = days |
hh = hours |
hh = hours (0-23) |
mm = minutes |
mm = minutes (0-59) |
ss = seconds |
ss = seconds (0-59) |
mmmmmm = microseconds | mmmmmm = microseconds |
</PRE> | </PRE> |
| |
|
|
00000000000000.000000:000 | 00000000000000.000000:000 |
| |
Instances can be tested for nullness with the isNull() method. | Instances can be tested for nullness with the isNull() method. |
|
|
ATTN: Add inequalities. |
|
*/ | */ |
class PEGASUS_COMMON_LINKAGE CIMDateTime | class PEGASUS_COMMON_LINKAGE CIMDateTime |
{ | { |
|
|
| |
enum { FORMAT_LENGTH = 25 }; | enum { FORMAT_LENGTH = 25 }; |
| |
/// CIMDateTime CIMMethod |
/** Create a new CIMDateTime object with NULL DateTime definition. |
|
*/ |
CIMDateTime(); | CIMDateTime(); |
| |
/** CIMDateTime CIMMethod creates the CIM CIMDateTime from a string |
/** CIMDateTime - Creat a CIM CIMDateTime instance from a string |
constant. |
constant representing the CIM DateTime formatted datetime |
|
See the class documentation for CIMDateTime for the defintion of the |
|
input string for absolute and interval datetime. |
|
@param str String object containing the CIM DateTime formatted string |
*/ | */ |
CIMDateTime(const char* str); | CIMDateTime(const char* str); |
| |
/** CIMDateTime CIMMethod - Creates the CIMDateTime instance from another |
/** CIMDateTime Create a CIMDateTime instance from another |
CIMDateTime instance |
CIMDateTime object |
|
@param x CIMDateTime object to be copied. |
*/ | */ |
CIMDateTime(const CIMDateTime& x); | CIMDateTime(const CIMDateTime& x); |
| |
/** CIMDateTime method again |
/** DateTime Destructor. */ |
|
~CIMDateTime() { } |
|
|
|
/** Assign one DateTime object to another |
|
@param - The DateTime Object to assign |
|
<pre> |
|
CIMDateTime d1; |
|
CIMDateTime d2 = "00000000000000.000000:000"; |
|
d1 = d1; |
|
</pre> |
*/ | */ |
CIMDateTime& operator=(const CIMDateTime& x); | CIMDateTime& operator=(const CIMDateTime& x); |
| |
/** CIMDateTime isNull method - Tests for an all zero date time |
/** CIMDateTime isNull method - Tests for an all zero date time. Note that |
|
today this function checks for absolute datetime == zero, not interval. |
<PRE> | <PRE> |
CIMDateTime dt; | CIMDateTime dt; |
dt.clear(); | dt.clear(); |
|
|
*/ | */ |
Boolean isNull() const; | Boolean isNull() const; |
| |
/// method getString |
/** getString - Returns the string representing the DateTime value of the |
|
CIMDateTime Object. |
|
ATTN: P3 KS. This simply returns a string whether the datetime is a |
|
real value or the NULL value. It is up to the user to test. Should |
|
this be modified so we do something like an interupt on NULL? |
|
*/ |
const char* getString() const; | const char* getString() const; |
| |
/** method set - Sets the date time. Creates the CIMDateTime instance from | /** method set - Sets the date time. Creates the CIMDateTime instance from |
|
|
*/ | */ |
void set(const char* str); | void set(const char* str); |
| |
/// CIMDateTime method clear - Clears the datetime class instance. |
/** clear - Clears the datetime class instance. The date time is set to our |
|
defintion of NULL, absolute zero date time. |
|
*/ |
void clear(); | void clear(); |
| |
/** CIMDateTime CIMMethod - ATTN: Friend operator Test for CIMDateTime |
/** CIMDateTime - ATTN: Friend operator Test for CIMDateTime |
equality | equality |
*/ | */ |
PEGASUS_COMMON_LINKAGE friend Boolean operator==( | PEGASUS_COMMON_LINKAGE friend Boolean operator==( |
|
|
const CIMDateTime& x, | const CIMDateTime& x, |
const CIMDateTime& y); | const CIMDateTime& y); |
| |
PEGASUS_COMMON_LINKAGE std::ostream& operator<<( |
PEGASUS_COMMON_LINKAGE PEGASUS_STD(ostream)& operator<<( |
std::ostream& os, |
PEGASUS_STD(ostream)& os, |
const CIMDateTime& x); | const CIMDateTime& x); |
| |
|
#define PEGASUS_ARRAY_T CIMDateTime |
|
# include "ArrayInter.h" |
|
#undef PEGASUS_ARRAY_T |
|
|
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif /* Pegasus_DateTime_h */ | #endif /* Pegasus_DateTime_h */ |