version 1.27, 2002/06/03 19:33:29
|
version 1.56.2.2, 2009/07/20 10:41:43
|
|
|
//%///////////////////////////////////////////////////////////////////////////// |
//%LICENSE//////////////////////////////////////////////////////////////// |
// |
|
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM, |
|
// The Open Group, Tivoli Systems |
|
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy |
// Licensed to The Open Group (TOG) under one or more contributor license |
// of this software and associated documentation files (the "Software"), to |
// agreements. Refer to the OpenPegasusNOTICE.txt file distributed with |
// deal in the Software without restriction, including without limitation the |
// this work for additional information regarding copyright ownership. |
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
// Each contributor licenses this file to you under the OpenPegasus Open |
// sell copies of the Software, and to permit persons to whom the Software is |
// Source License; you may not use this file except in compliance with the |
// furnished to do so, subject to the following conditions: |
// License. |
// | // |
// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
// Permission is hereby granted, free of charge, to any person obtaining a |
// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
// copy of this software and associated documentation files (the "Software"), |
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT |
// to deal in the Software without restriction, including without limitation |
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
// the rights to use, copy, modify, merge, publish, distribute, sublicense, |
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
// and/or sell copies of the Software, and to permit persons to whom the |
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
// Software is furnished to do so, subject to the following conditions: |
// 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. |
|
// | // |
//============================================================================== |
// The above copyright notice and this permission notice shall be included |
|
// in all copies or substantial portions of the Software. |
// | // |
// Author: Mike Brasher (mbrasher@bmc.com) |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
|
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 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. |
// | // |
// Modified By: Karl Schopmeyer(k.schopmeyer@opengroup.org) |
////////////////////////////////////////////////////////////////////////// |
// Sushma Fernandes, Hewlett Packard Company |
|
// (sushma_fernandes@hp.com) |
|
// Roger Kumpf, Hewlett Packard Company (roger_kumpf@hp.com) |
|
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#ifndef Pegasus_DateTime_h |
#ifndef Pegasus_CIMDateTime_h |
#define Pegasus_DateTime_h |
#define Pegasus_CIMDateTime_h |
| |
#include <Pegasus/Common/Config.h> | #include <Pegasus/Common/Config.h> |
#include <Pegasus/Common/Array.h> | #include <Pegasus/Common/Array.h> |
#include <time.h> |
#include <Pegasus/Common/Linkage.h> |
#ifdef PEGASUS_INTERNALONLY |
|
#include <iostream> |
|
#endif |
|
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
/* ATTN: P3. KS Several functions should be added to this class for datetime manipulation |
|
including get and set each subcomponent (year, month, etc), test for equality, |
|
create intervals from absolutes, possibly gett current time, Note that |
|
the Java rep is probably tostring, not get string, |
|
*/ |
|
|
|
class CIMDateTimeRep; | class CIMDateTimeRep; |
| |
/** | /** |
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 time stamp or an interval. |
is an intrinsic CIM data type which represents the time as a formated |
CIMDateTime is an intrinsic CIM data type that represents the time as a |
fixedplength string. |
string with a fixed length. |
| |
<PRE> | <PRE> |
A date has the following form: |
A time stamp has the following form: |
yyyymmddhhmmss.mmmmmmsutc | yyyymmddhhmmss.mmmmmmsutc |
| |
Where | Where |
| |
yyyy = year (0-1999) |
yyyy = year (1-9999) |
mm = month (1-12) | mm = month (1-12) |
dd = day (1-31) | dd = day (1-31) |
hh = hour (0-23) | hh = hour (0-23) |
mm = minute (0-59) | mm = minute (0-59) |
ss = second (0-59) | ss = second (0-59) |
mmmmmm = microseconds. |
mmmmmm = microseconds |
s = '+' or '-' to represent the UTC sign. |
s = '+' or '-' to represent the Coordinated Universal Time (UTC) sign |
utc = UTC offset (same as GMT offset). |
utc = offset from Coordinated Universal Time (UTC) |
|
(same as Greenwich Mean Time(GMT) offset) |
| |
An interval has the following form: | An interval has the following form: |
| |
|
|
mmmmmm = microseconds | mmmmmm = microseconds |
</PRE> | </PRE> |
| |
Note that intervals always end in ":000" (this is how they |
Note: Intervals always end in ":000". This distinguishes intervals from |
are distinguished from dates). |
time stamps. |
| |
Intervals are really durations since they do not specify a start and |
CIMDateTime objects are constructed from String objects or from |
end time (as one expects when speaking about an interval). It is |
other CIMDateTime objects. Character strings must be exactly |
better to think of an interval as specifying time elapsed since |
twenty-five characters in length and conform to either the time stamp |
some event. |
or interval format. |
|
|
CIMDateTime objects are constructed from C character strings or from |
|
other CIMDateTime objects. These character strings must be exactly |
|
twenty-five characters and conform to one of the forms idententified |
|
above. |
|
| |
CIMDateTime objects which are not explicitly initialized will be |
CIMDateTime objects that are not explicitly initialized will be |
implicitly initialized with the null time interval: |
implicitly initialized with a zero time interval: |
| |
00000000000000.000000:000 | 00000000000000.000000:000 |
| |
Instances can be tested for nullness with the isNull() method. |
|
|
The following table shows what arithmetic operations are allowed |
|
between CIMDateTime types. The entries in the last four columns define |
|
the type of the result when the operation, specified in the column header, |
|
is performed on operands, of the types specified in the first two columns. |
|
|
|
<PRE> |
|
LHS - left hand side TS - time stamp int - integer |
|
RHS - right hand side IV - interval |
|
X - operation not allowed between types |
|
|
|
LHS RHS + - * / |
|
_____________________________________________ |
|
TS TS X IV X X |
|
TS IV TS TS X X |
|
TS int X X X X |
|
IV IV IV IV X int |
|
IV TS X X X X |
|
IV int X X IV IV |
|
int TS X X X X |
|
int IV X X X X |
|
</PRE> |
|
|
|
The relational operators may only operate on two operands of the same type, |
|
i.e. two time stamps or two intervals. |
*/ | */ |
class PEGASUS_COMMON_LINKAGE CIMDateTime | class PEGASUS_COMMON_LINKAGE CIMDateTime |
{ | { |
public: | public: |
| |
/** Create a new CIMDateTime object with NULL DateTime definition. |
#ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES |
|
|
|
/** Wildcard parameter for component-based initializer member functions. |
*/ | */ |
CIMDateTime(); |
static const Uint32 WILDCARD; |
| |
/** CIMDateTime - Creat a CIM CIMDateTime instance from a string |
#endif /* PEGASUS_USE_EXPERIMENTAL_INTERFACES */ |
constant representing the CIM DateTime formatted datetime |
|
See the class documentation for CIMDateTime for the defintion of the |
/** Creates a new CIMDateTime object with a zero interval value. |
input string for absolute and interval datetime. |
|
@param str String object containing the CIM DateTime formatted string |
|
*/ | */ |
CIMDateTime(const char* str); |
CIMDateTime(); |
| |
/** CIMDateTime Create a CIMDateTime instance from another |
/** Creates a CIMDateTime object from another CIMDateTime object. |
CIMDateTime object |
@param x Specifies the name of the CIMDateTime object to copy. |
@param x CIMDateTime object to be copied. |
|
*/ | */ |
CIMDateTime(const CIMDateTime& x); | CIMDateTime(const CIMDateTime& x); |
| |
/** DateTime Destructor. */ |
/** Creates a new CIMDateTime object from a string constant representing |
|
the CIM DateTime formatted datetime. |
|
See the class documentation for CIMDateTime for the definition of the |
|
input string for absolute and interval datetime. |
|
@param str String object containing the CIMDateTime formatted string. |
|
This must contain twenty-five characters. |
|
@exception InvalidDateTimeFormatException If the input string is not |
|
formatted correctly. |
|
*/ |
|
CIMDateTime(const String& str); |
|
|
|
/** Creates a CIMDateTime object from an integer. |
|
@param usec For a time stamp, the number of microseconds since |
|
the epoch 0/0/0000 (12 am Jan 1, 1BCE); For an interval, the number |
|
of microseconds in the interval. |
|
@param isInterval Specifies whether the CIMDateTime object is to be |
|
created as an interval value (true) or a time stamp (false). |
|
@exception DateTimeOutOfRangeException If the microSec value is too |
|
large (greater than 317,455,200,000,000,000 for a time stamps or |
|
8,640,000,000,000,000,000 for an interval). |
|
@exception InvalidDateTimeFormatException If the CIMDateTime object is |
|
not formed correctly. |
|
*/ |
|
CIMDateTime(Uint64 usec, Boolean isInterval); |
|
|
|
#ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES |
|
|
|
/** Create datetime time stamp from components. |
|
@param year zero-based year number (or CIMDateTime::WILDCARD) |
|
@param month number from 1 to 12 (or CIMDateTime::WILDCARD) |
|
@param day one-based day of the month (or CIMDateTime::WILDCARD) |
|
@param hours a number from 0 to 23 (or CIMDateTime::WILDCARD) |
|
@param minutes a number from 0 to 59 (or CIMDateTime::WILDCARD) |
|
@param seconds a number from 0 to 59 (or CIMDateTime::WILDCARD) |
|
@param microseconds a number from 0 to 999999 |
|
@param numSignificantMicrosecondDigits the number of decimal digits of |
|
the microseconds parameter (from left to right) that are |
|
significant (all others are wildcarded) or six if they are all |
|
significant. |
|
@param UTF offset in minutes (negative or positive). |
|
@exception DateTimeOutOfRangeException. |
|
*/ |
|
CIMDateTime( |
|
Uint32 year, |
|
Uint32 month, |
|
Uint32 day, |
|
Uint32 hours, |
|
Uint32 minutes, |
|
Uint32 seconds, |
|
Uint32 microseconds, |
|
Uint32 numSignificantMicrosecondDigits, |
|
Sint32 utcOffset); |
|
|
|
/** Create datetime interval from components. |
|
@param days a number from 0 to 99999999 (or CIMDateTime::WILDCARD) |
|
@param hours a number from 0 to 23 (or CIMDateTime::WILDCARD) |
|
@param minutes a number from 0 to 59 (or CIMDateTime::WILDCARD) |
|
@param seconds a number from 0 to 59 (or CIMDateTime::WILDCARD) |
|
@param microseconds a number from 0 to 999999 |
|
@param numSignificantMicrosecondDigits the number of decimal digits of |
|
the microseconds parameter (from left to right) that are |
|
significant (all others are wildcarded) or six if they are all |
|
significant. |
|
@exception DateTimeOutOfRangeException. |
|
*/ |
|
CIMDateTime( |
|
Uint32 days, |
|
Uint32 hours, |
|
Uint32 minutes, |
|
Uint32 seconds, |
|
Uint32 microseconds, |
|
Uint32 numSignificantMicrosecondDigits); |
|
|
|
#endif /* PEGASUS_USE_EXPERIMENTAL_INTERFACES */ |
|
|
|
/** CIMDateTime destructor. */ |
~CIMDateTime(); | ~CIMDateTime(); |
| |
/** Assign one DateTime object to another |
/** Assigns one instance of the CIMDateTime object to another. |
@param - The DateTime Object to assign |
@param x The CIMDateTime Object to assign to the CIMDateTime object. |
<pre> |
For example, you can assign the d1 CIMDateTime instance to the d2 |
|
CIMDateTime instance. |
|
<PRE> |
CIMDateTime d1; | CIMDateTime d1; |
CIMDateTime d2 = "00000000000000.000000:000"; | CIMDateTime d2 = "00000000000000.000000:000"; |
d1 = d1; |
d1 = d2; |
</pre> |
|
*/ |
|
CIMDateTime& operator=(const CIMDateTime& x); |
|
|
|
/** CIMDateTime isNull method - Tests for an all zero date time. Note that |
|
today this function checks for absolute datetime == zero, not interval. |
|
<PRE> |
|
CIMDateTime dt; |
|
dt.clear(); |
|
assert(dt.isNull()); |
|
</PRE> | </PRE> |
@return This method returns true of the contents are |
Therefore, d1 is assigned the same "00000000000000.000000:000" value |
"00000000000000.000000:000". Else it returns false |
as d2. |
*/ | */ |
Boolean isNull() const; |
CIMDateTime& operator=(const CIMDateTime& x); |
| |
/** getString - Returns the string representing the DateTime value of the |
/** Returns a string representing the DateTime value of the |
CIMDateTime Object. |
CIMDateTime object. |
ATTN: P3 KS. This simply returns a string whether the datetime is a |
@return String representing the DateTime value. |
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? |
String toString() const; |
*/ |
|
const char* getString() const; |
/** Sets the datetime value from the input parameter. |
|
@param str String containing the new value in the datetime format |
/** method set - Sets the date time. Creates the CIMDateTime instance from |
(specified in the CIMDateTime class description). For example, the |
the input string constant which must be |
following sets the date to December 24, 1999 and time to 12:00 P.M. |
in the datetime format. |
EST. |
| |
<PRE> | <PRE> |
CIMDateTime dt; | CIMDateTime dt; |
dt.set("19991224120000.000000+360"); |
dt.set("19991224120000.000000-300"); |
</PRE> | </PRE> |
| |
@return On format error, CIMDateTime set throws the exception |
@exception InvalidDateTimeFormatException If the datetime String is not |
BadDateTimeFormat |
formatted correctly. |
@exception Throws exception BadDateTimeFormat on format error. |
|
*/ | */ |
void set(const char* str); |
void set(const String & str); |
| |
/** clear - Clears the datetime class instance. The date time is set to our |
#ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES |
defintion of NULL, absolute zero date time. |
|
*/ |
|
void clear(); |
|
| |
/** Makes a deep copy (clone) of the given object. */ |
/** Sets the datetime timestamp from individual components. |
CIMDateTime clone() const; |
@param year zero-based year number (or CIMDateTime::WILDCARD) |
|
@param month number from 1 to 12 (or CIMDateTime::WILDCARD) |
|
@param day one-based day of the month (or CIMDateTime::WILDCARD) |
|
@param hours a number from 0 to 23 (or CIMDateTime::WILDCARD) |
|
@param minutes a number from 0 to 59 (or CIMDateTime::WILDCARD) |
|
@param seconds a number from 0 to 59 (or CIMDateTime::WILDCARD) |
|
@param microseconds a number from 0 to 999999 |
|
@param UTF offset in minutes (negative or positive). |
|
@param numSignificantMicrosecondDigits the number of decimal digits of |
|
the microseconds parameter (from left to right) that are |
|
significant (all others are wildcarded) or six if they are all |
|
significant. |
|
@exception DateTimeOutOfRangeException. |
|
*/ |
|
void setTimeStamp( |
|
Uint32 year, |
|
Uint32 month, |
|
Uint32 day, |
|
Uint32 hours, |
|
Uint32 minutes, |
|
Uint32 seconds, |
|
Uint32 microseconds, |
|
Uint32 numSignificantMicrosecondDigits, |
|
Sint32 utcOffset); |
|
|
|
/** Create datetime interval from components. |
|
@param days a number from 0 to 99999999 |
|
@param hours a number from 0 to 23 (or CIMDateTime::WILDCARD) |
|
@param minutes a number from 0 to 59 (or CIMDateTime::WILDCARD) |
|
@param seconds a number from 0 to 59 (or CIMDateTime::WILDCARD) |
|
@param microseconds a number from 0 to 999999 |
|
@param numSignificantMicrosecondDigits the number of decimal digits of |
|
the microseconds parameter (from left to right) that are |
|
significant (all others are wildcarded) or six if they are all |
|
significant. |
|
@exception DateTimeOutOfRangeException. |
|
*/ |
|
void setInterval( |
|
Uint32 days, |
|
Uint32 hours, |
|
Uint32 minutes, |
|
Uint32 seconds, |
|
Uint32 microseconds, |
|
Uint32 numSignificantMicrosecondDigits); |
| |
/** |
#endif /* PEGASUS_USE_EXPERIMENTAL_INTERFACES */ |
Get current time as CIMDateTime. The time returned is the local time. |
|
| |
@return CIMDateTime Contains the current datetime as a CIMDateTime object. |
/** Clears the datetime class object. The date time is set to |
|
a zero interval value. |
|
*/ |
|
void clear(); |
| |
Note: Original code was taken from OperationSystem::getLocalDateTime() |
/** Returns the current local time in a CIMDateTime object. |
|
@return CIMDateTime object containing the current local date and time. |
*/ | */ |
static CIMDateTime getCurrentDateTime(); | static CIMDateTime getCurrentDateTime(); |
| |
/** |
/** Computes the difference in microseconds between two CIMDateTime time |
Get the difference between two CIMDateTimes. This function computes the |
stamps or two CIMDateTime intervals. |
difference between two datetimes or between two intervals. The result |
@param startTime Contains the start datetime. |
is truncated and returned as the number of seconds. |
@param finishTime Contains the finish datetime. |
|
@return An integer that contains the difference between the two |
@param startTime Contains the start time. |
datetime values (in microseconds). |
|
@exception InvalidDateTimeFormatException If arguments are not the same |
@param finishTime Contains the finish time. |
type of CIMDateTime. |
|
|
@return difference Difference between the two datetimes in seconds. |
|
|
|
@throws BadFormat |
|
|
|
*/ | */ |
static Sint64 getDifference(CIMDateTime startTime, CIMDateTime finishTime); | static Sint64 getDifference(CIMDateTime startTime, CIMDateTime finishTime); |
| |
/** |
/** Checks whether the datetime is an interval. |
Checks whether the datetime is an interval. |
@return True if the datetime is an interval value, false otherwise. |
|
*/ |
|
Boolean isInterval() const; |
| |
@return isInterval True if the datetime is an interval, else false |
/** Checks whether the datetime is an interval. (This non-const form is |
|
maintained for compatibility.) |
|
@return True if the datetime is an interval value, false otherwise. |
*/ | */ |
Boolean isInterval(); | Boolean isInterval(); |
| |
private: |
#ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES |
|
|
CIMDateTimeRep* _rep; |
|
|
|
Boolean _set(const char* str); |
|
| |
/** |
/** Checks whether the datetime is a timestamp. |
This function extracts the different components of the date and time |
@return True if so. |
from the string passed and assigns it to the tm structure. |
*/ |
|
Boolean isTimeStamp() const; |
| |
@param dateTimeStr Contains the string to be assigned. |
#endif /* PEGASUS_USE_EXPERIMENTAL_INTERFACES */ |
| |
@param tm Contains the tm structure to be updated. |
/** Compares the CIMDateTime object to another CIMDateTime object for |
|
equality. |
|
@param x CIMDateTime object to be compared. |
|
@return true if the two CIMDateTime objects are equal, false otherwise |
|
@exception TypeMismatchException If arguments are of different types. |
|
*/ |
|
Boolean equal(const CIMDateTime& x) const; |
|
|
|
/** Converts a CIMDateTime object to its microsecond representation. |
|
@return Number of microseconds since the epoch (for time stamps) or |
|
in a span of time (for intervals). |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
*/ |
|
Uint64 toMicroSeconds() const; |
|
|
|
/** Adds two CIMDateTime objects and returns a CIMDateTime object that |
|
represents the sum. |
|
@param x operand on the RHS of the operator |
|
@return A CIMDateTime object that is the result of adding the calling |
|
object to the RHS operand |
|
@exception DateTimeOutOfRangeException If the operation causes an |
|
overflow condition. |
|
@exception TypeMismatchException If the operands are not type |
|
compatible (see table of operations). |
|
*/ |
|
CIMDateTime operator+(const CIMDateTime& x) const; |
|
|
|
/** Adds two CIMDateTime objects, returns the sum and changes |
|
the value of the calling CIMDateTime object to match the return value. |
|
@param x operand on the RHS of the operator |
|
@return A CIMDateTime object that is the result of adding the calling |
|
object to the RHS operand |
|
@exception DateTimeOutOfRangeException If the operation causes an |
|
overflow condition. |
|
@exception TypeMismatchException If the operands are not type |
|
compatible (see table of operations). |
|
*/ |
|
CIMDateTime & operator+=(const CIMDateTime& x); |
|
|
|
/** Subtracts one CIMDateTime object from another and returns a |
|
CIMDateTime object that represents the difference. |
|
@param x operand on the RHS of the operator |
|
@return A CIMDateTime object that is the result of subtracting the |
|
the RHS object from the calling. |
|
@exception DateTimeOutOfRangeException If the operation causes an |
|
underflow condition or conversion to UTC (an internal operation) |
|
causes an overflow condition. |
|
@exception TypeMismatchException If the operands are not type |
|
compatible (see table of operations). |
|
*/ |
|
CIMDateTime operator-(const CIMDateTime& x) const; |
|
|
|
/** Subtracts one CIMDateTime object from another, returns the difference |
|
and changes the value of the calling CIMDateTime object to match the |
|
return value. |
|
@param x operand on the RHS of the operator |
|
@return A CIMDateTime object that is the result of subtracting the |
|
object on the RHS from the calling object. |
|
@exception DateTimeOutOfRangeException If the operation causes an |
|
underflow condition or conversion to UTC (an internal operation) |
|
causes an overflow condition. |
|
@exception TypeMismatchException If the operands are not type |
|
compatible (see table of operations). |
|
*/ |
|
CIMDateTime & operator-=(const CIMDateTime& x); |
|
|
|
/** Multiplies a CIMDateTime object by an integer and returns a CIMDateTime |
|
object that represents the product. |
|
@param x integer operand on the RHS of the operator |
|
@return A CIMDateTime object that is the result of multiplying the |
|
calling object by the RHS operand. |
|
@exception DateTimeOutOfRangeException If the operation causes an |
|
overflow condition. |
|
@exception TypeMismatchException If the operands are not type |
|
compatible (see table of operations). |
|
*/ |
|
CIMDateTime operator*(Uint64 x) const; |
|
|
|
/** Multiplies a CIMDateTime object by an integer, returns the product |
|
and changes the value of the calling object to match the returned |
|
product. |
|
@param x integer operand on the RHS of the operator |
|
@return A CIMDateTime object that is the result of multiplying the |
|
calling object by the RHS operand. |
|
@exception DateTimeOutOfRangeException If the operation causes an |
|
overflow condition. |
|
@exception TypeMismatchException If the operands are not type |
|
compatible (see table of operations). |
|
*/ |
|
CIMDateTime & operator*=(Uint64 x); |
|
|
|
/** Divides a CIMDateTime object by an integer and returns a CIMDateTime |
|
object that represents the quotient. |
|
@param num integer operand on the RHS of the operator |
|
@return A CIMDateTime object that is the result of dividing the calling |
|
object by the RHS operand. |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
@exception TypeMismatchException If the CIMDateTime object does not |
|
hold an interval value (see table of operations). |
|
@exception Exception if param num is zero. |
|
*/ |
|
CIMDateTime operator/(Uint64 num) const; |
|
|
|
/** Divides a CIMDateTime object by an integer, returns the quotient |
|
and changes the value of the calling object to match the returned |
|
quotient. |
|
@param num integer operand on the RHS of the operator |
|
@return A CIMDateTime object that is the result of dividing the calling |
|
object by the RHS operand. |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
@exception TypeMismatchException If the CIMDateTime object does not |
|
hold an interval value (see table of operations). |
|
@exception Exception if param num is zero. |
|
*/ |
|
CIMDateTime & operator/=(Uint64 num); |
|
|
|
/** Divides a CIMDateTime object by another CIMDateTime object and returns |
|
an integer quotient. |
|
@param cdt CIMDateTime object on the RHS of the operator |
|
@return An integer that is the result of dividing the number of |
|
microseconds represented by the calling CIMDateTime object by the |
|
number of microseconds represented by the CIMDateTime object on the |
|
RHS of the operator. |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
@exception TypeMismatchException If the operands are not type |
|
compatible (see table of operations). |
|
*/ |
|
Uint64 operator/(const CIMDateTime& cdt) const; |
|
|
|
/** Compare two CIMDateTime objects and returns true if the LHS is |
|
less than the RHS. |
|
@param x operand on the RHS of the operator |
|
@return true if the LHS is less than the RHS, false otherwise. |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
@exception TypeMismatchException if operands are not of the same |
|
type. |
|
*/ |
|
Boolean operator<(const CIMDateTime& x) const; |
|
|
|
/** Compare two CIMDateTime objects and returns true if the LHS is |
|
less than or equal to the RHS. |
|
@param x operand on the RHS of the operator |
|
@return true if the LHS is less than or equal to the RHS, false |
|
otherwise. |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
@exception TypeMismatchException if operands are not of the same |
|
type. |
|
*/ |
|
Boolean operator<=(const CIMDateTime& x) const; |
|
|
|
/** Compare two CIMDateTime objects and returns true if the LHS is |
|
greater than the RHS. |
|
@param x operand on the RHS of the operator |
|
@return true if the LHS is greater than the RHS, false otherwise. |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
@exception TypeMismatchException if operands are not of the same |
|
type. |
|
*/ |
|
Boolean operator>(const CIMDateTime & x) const; |
|
|
|
/** Compare two CIMDateTime objects and returns true if the LHS is |
|
greater than or equal to the RHS. |
|
@param x operand on the RHS of the operator |
|
@return true if the LHS is greater than or equal to the RHS, false |
|
otherwise. |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
@exception TypeMismatchException if operands are not of the same |
|
type. |
|
*/ |
|
Boolean operator>=(const CIMDateTime & x) const; |
|
|
|
/** Compare two CIMDateTime objects and returns true if the LHS is |
|
not equal to the RHS. |
|
@param x operand on the RHS of the operator |
|
@return true if the LHS is not equal to RHS, false otherwise. |
|
@exception DateTimeOutOfRangeException If conversion to UTC (an |
|
internal operation) causes an overflow condition. |
|
@exception TypeMismatchException if operands are not of the same |
|
type. |
*/ | */ |
static void formatDateTime(char* dateTime, tm* tm); |
Boolean operator!=(const CIMDateTime & x) const; |
| |
/** CIMDateTime - ATTN: Friend operator Test for CIMDateTime |
private: |
equality |
CIMDateTimeRep* _rep; |
*/ |
CIMDateTime(CIMDateTimeRep*); |
PEGASUS_COMMON_LINKAGE friend Boolean operator==( |
|
const CIMDateTime& x, |
friend class CIMBuffer; |
const CIMDateTime& y); |
friend class SCMOClass; |
|
friend class SCMODump; |
}; | }; |
| |
|
/** Compares two CIMDateTime objects and returns true if they represent the |
|
same time or length of time. |
|
@param x one of the CIMDateTime objects to be compared |
|
@param y one of the CIMDateTime objects to be compared |
|
@return true if the two objects passed in represent the same time or |
|
length of time, false otherwise. |
|
*/ |
PEGASUS_COMMON_LINKAGE Boolean operator==( | PEGASUS_COMMON_LINKAGE Boolean operator==( |
const CIMDateTime& x, | const CIMDateTime& x, |
const CIMDateTime& y); | const CIMDateTime& y); |
| |
#ifdef PEGASUS_INTERNALONLY |
|
PEGASUS_COMMON_LINKAGE PEGASUS_STD(ostream)& operator<<( |
|
PEGASUS_STD(ostream)& os, |
|
const CIMDateTime& x); |
|
#endif |
|
|
|
#define PEGASUS_ARRAY_T CIMDateTime | #define PEGASUS_ARRAY_T CIMDateTime |
# include <Pegasus/Common/ArrayInter.h> | # include <Pegasus/Common/ArrayInter.h> |
#undef PEGASUS_ARRAY_T | #undef PEGASUS_ARRAY_T |
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif /* Pegasus_DateTime_h */ |
#endif /* Pegasus_CIMDateTime_h */ |