1 martin 1.54 //%LICENSE////////////////////////////////////////////////////////////////
|
2 martin 1.55 //
|
3 martin 1.54 // Licensed to The Open Group (TOG) under one or more contributor license
4 // agreements. Refer to the OpenPegasusNOTICE.txt file distributed with
5 // this work for additional information regarding copyright ownership.
6 // Each contributor licenses this file to you under the OpenPegasus Open
7 // Source License; you may not use this file except in compliance with the
8 // License.
|
9 martin 1.55 //
|
10 martin 1.54 // Permission is hereby granted, free of charge, to any person obtaining a
11 // copy of this software and associated documentation files (the "Software"),
12 // to deal in the Software without restriction, including without limitation
13 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
14 // and/or sell copies of the Software, and to permit persons to whom the
15 // Software is furnished to do so, subject to the following conditions:
|
16 martin 1.55 //
|
17 martin 1.54 // The above copyright notice and this permission notice shall be included
18 // in all copies or substantial portions of the Software.
|
19 martin 1.55 //
|
20 martin 1.54 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
21 martin 1.55 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22 martin 1.54 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23 // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24 // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25 // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27 martin 1.55 //
|
28 martin 1.54 //////////////////////////////////////////////////////////////////////////
|
29 mike 1.10 //
30 //%/////////////////////////////////////////////////////////////////////////////
31
|
32 mike 1.51 #ifndef Pegasus_CIMDateTime_h
33 #define Pegasus_CIMDateTime_h
|
34 mike 1.10
35 #include <Pegasus/Common/Config.h>
|
36 kumpf 1.48 #include <Pegasus/Common/Array.h>
|
37 kumpf 1.29 #include <Pegasus/Common/Linkage.h>
|
38 kumpf 1.14
|
39 mike 1.10 PEGASUS_NAMESPACE_BEGIN
40
|
41 w.white 1.46 class CIMDateTimeRep;
|
42 r.kieninger 1.56.2.5 class CMPISCMOUtilities;
|
43 kumpf 1.24
|
44 mike 1.10 /**
|
45 karl 1.36 The CIMDateTime class represents the CIM datetime data type as a C++ class
|
46 kumpf 1.48 CIMDateTime. A CIM datetime may contain a time stamp or an interval.
47 CIMDateTime is an intrinsic CIM data type that represents the time as a
48 string with a fixed length.
|
49 mike 1.10
50 <PRE>
|
51 w.white 1.42 A time stamp has the following form:
|
52 karl 1.36 yyyymmddhhmmss.mmmmmmsutc
|
53 mike 1.10
54 Where
55
|
56 karl 1.36 yyyy = year (1-9999)
57 mm = month (1-12)
58 dd = day (1-31)
59 hh = hour (0-23)
60 mm = minute (0-59)
61 ss = second (0-59)
62 mmmmmm = microseconds
63 s = '+' or '-' to represent the Coordinated Universal Time (UTC) sign
64 utc = offset from Coordinated Universal Time (UTC)
65 (same as Greenwich Mean Time(GMT) offset)
|
66 mike 1.10
67 An interval has the following form:
68
|
69 karl 1.36 ddddddddhhmmss.mmmmmm:000
|
70 mike 1.10
71 Where
72
|
73 karl 1.36 dddddddd = days
74 hh = hours (0-23)
75 mm = minutes (0-59)
76 ss = seconds (0-59)
77 mmmmmm = microseconds
|
78 mike 1.10 </PRE>
79
|
80 kumpf 1.48 Note: Intervals always end in ":000". This distinguishes intervals from
81 time stamps.
|
82 mike 1.10
|
83 kumpf 1.31 CIMDateTime objects are constructed from String objects or from
|
84 karl 1.36 other CIMDateTime objects. Character strings must be exactly
|
85 kumpf 1.48 twenty-five characters in length and conform to either the time stamp
86 or interval format.
|
87 mike 1.10
|
88 kumpf 1.31 CIMDateTime objects that are not explicitly initialized will be
89 implicitly initialized with a zero time interval:
|
90 mike 1.10
|
91 karl 1.36 00000000000000.000000:000
|
92 mike 1.10
|
93 w.white 1.42
|
94 kumpf 1.48 The following table shows what arithmetic operations are allowed
95 between CIMDateTime types. The entries in the last four columns define
96 the type of the result when the operation, specified in the column header,
97 is performed on operands, of the types specified in the first two columns.
|
98 w.white 1.42
|
99 kumpf 1.48 <PRE>
100 LHS - left hand side TS - time stamp int - integer
101 RHS - right hand side IV - interval
102 X - operation not allowed between types
103
104 LHS RHS + - * /
105 _____________________________________________
106 TS TS X IV X X
107 TS IV TS TS X X
108 TS int X X X X
109 IV IV IV IV X int
110 IV TS X X X X
111 IV int X X IV IV
112 int TS X X X X
113 int IV X X X X
114 </PRE>
115
116 The relational operators may only operate on two operands of the same type,
117 i.e. two time stamps or two intervals.
|
118 mike 1.10 */
119 class PEGASUS_COMMON_LINKAGE CIMDateTime
120 {
121 public:
122
|
123 mike 1.51 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
124
125 /** Wildcard parameter for component-based initializer member functions.
126 */
127 static const Uint32 WILDCARD;
128
129 #endif /* PEGASUS_USE_EXPERIMENTAL_INTERFACES */
130
|
131 kumpf 1.34 /** Creates a new CIMDateTime object with a zero interval value.
|
132 karl 1.12 */
|
133 mike 1.10 CIMDateTime();
134
|
135 mike 1.51 /** Creates a CIMDateTime object from another CIMDateTime object.
136 @param x Specifies the name of the CIMDateTime object to copy.
137 */
138 CIMDateTime(const CIMDateTime& x);
139
|
140 karl 1.36 /** Creates a new CIMDateTime object from a string constant representing
|
141 w.white 1.42 the CIM DateTime formatted datetime.
|
142 kumpf 1.31 See the class documentation for CIMDateTime for the definition of the
|
143 karl 1.12 input string for absolute and interval datetime.
|
144 kumpf 1.48 @param str String object containing the CIMDateTime formatted string.
|
145 karl 1.36 This must contain twenty-five characters.
|
146 kumpf 1.48 @exception InvalidDateTimeFormatException If the input string is not
147 formatted correctly.
|
148 mike 1.10 */
|
149 mike 1.51 CIMDateTime(const String& str);
|
150 mike 1.10
|
151 w.white 1.42 /** Creates a CIMDateTime object from an integer.
|
152 kumpf 1.53 @param usec For a time stamp, the number of microseconds since
|
153 kumpf 1.48 the epoch 0/0/0000 (12 am Jan 1, 1BCE); For an interval, the number
154 of microseconds in the interval.
|
155 kumpf 1.53 @param isInterval Specifies whether the CIMDateTime object is to be
|
156 kumpf 1.48 created as an interval value (true) or a time stamp (false).
157 @exception DateTimeOutOfRangeException If the microSec value is too
158 large (greater than 317,455,200,000,000,000 for a time stamps or
159 8,640,000,000,000,000,000 for an interval).
160 @exception InvalidDateTimeFormatException If the CIMDateTime object is
161 not formed correctly.
162 */
|
163 mike 1.51 CIMDateTime(Uint64 usec, Boolean isInterval);
164
165 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
166
167 /** Create datetime time stamp from components.
168 @param year zero-based year number (or CIMDateTime::WILDCARD)
169 @param month number from 1 to 12 (or CIMDateTime::WILDCARD)
170 @param day one-based day of the month (or CIMDateTime::WILDCARD)
171 @param hours a number from 0 to 23 (or CIMDateTime::WILDCARD)
172 @param minutes a number from 0 to 59 (or CIMDateTime::WILDCARD)
173 @param seconds a number from 0 to 59 (or CIMDateTime::WILDCARD)
174 @param microseconds a number from 0 to 999999
175 @param numSignificantMicrosecondDigits the number of decimal digits of
176 the microseconds parameter (from left to right) that are
177 significant (all others are wildcarded) or six if they are all
178 significant.
179 @param UTF offset in minutes (negative or positive).
180 @exception DateTimeOutOfRangeException.
181 */
182 CIMDateTime(
183 Uint32 year,
184 mike 1.51 Uint32 month,
185 Uint32 day,
186 Uint32 hours,
187 Uint32 minutes,
188 Uint32 seconds,
189 Uint32 microseconds,
190 Uint32 numSignificantMicrosecondDigits,
191 Sint32 utcOffset);
192
193 /** Create datetime interval from components.
194 @param days a number from 0 to 99999999 (or CIMDateTime::WILDCARD)
195 @param hours a number from 0 to 23 (or CIMDateTime::WILDCARD)
196 @param minutes a number from 0 to 59 (or CIMDateTime::WILDCARD)
197 @param seconds a number from 0 to 59 (or CIMDateTime::WILDCARD)
198 @param microseconds a number from 0 to 999999
199 @param numSignificantMicrosecondDigits the number of decimal digits of
200 the microseconds parameter (from left to right) that are
201 significant (all others are wildcarded) or six if they are all
202 significant.
203 @exception DateTimeOutOfRangeException.
204 */
205 mike 1.51 CIMDateTime(
206 Uint32 days,
207 Uint32 hours,
208 Uint32 minutes,
209 Uint32 seconds,
210 Uint32 microseconds,
211 Uint32 numSignificantMicrosecondDigits);
212
213 #endif /* PEGASUS_USE_EXPERIMENTAL_INTERFACES */
|
214 w.white 1.42
|
215 a.arora 1.39 /** CIMDateTime destructor. */
216 ~CIMDateTime();
217
|
218 karl 1.36 /** Assigns one instance of the CIMDateTime object to another.
219 @param x The CIMDateTime Object to assign to the CIMDateTime object.
220 For example, you can assign the d1 CIMDateTime instance to the d2
221 CIMDateTime instance.
|
222 kumpf 1.34 <PRE>
223 CIMDateTime d1;
224 CIMDateTime d2 = "00000000000000.000000:000";
|
225 karl 1.36 d1 = d2;
|
226 kumpf 1.34 </PRE>
|
227 kumpf 1.52 Therefore, d1 is assigned the same "00000000000000.000000:000" value
|
228 mike 1.51 as d2.
|
229 mike 1.10 */
230 CIMDateTime& operator=(const CIMDateTime& x);
231
|
232 kumpf 1.34 /** Returns a string representing the DateTime value of the
|
233 karl 1.36 CIMDateTime object.
|
234 kumpf 1.34 @return String representing the DateTime value.
|
235 karl 1.12 */
|
236 kumpf 1.48 String toString() const;
|
237 mike 1.10
|
238 kumpf 1.48 /** Sets the datetime value from the input parameter.
239 @param str String containing the new value in the datetime format
240 (specified in the CIMDateTime class description). For example, the
241 following sets the date to December 24, 1999 and time to 12:00 P.M.
242 EST.
|
243 mike 1.10
|
244 karl 1.36 <PRE>
245 CIMDateTime dt;
|
246 kumpf 1.48 dt.set("19991224120000.000000-300");
|
247 karl 1.36 </PRE>
|
248 mike 1.10
|
249 kumpf 1.48 @exception InvalidDateTimeFormatException If the datetime String is not
250 formatted correctly.
|
251 mike 1.10 */
|
252 kumpf 1.31 void set(const String & str);
|
253 mike 1.10
|
254 mike 1.51 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
255
256 /** Sets the datetime timestamp from individual components.
257 @param year zero-based year number (or CIMDateTime::WILDCARD)
258 @param month number from 1 to 12 (or CIMDateTime::WILDCARD)
259 @param day one-based day of the month (or CIMDateTime::WILDCARD)
260 @param hours a number from 0 to 23 (or CIMDateTime::WILDCARD)
261 @param minutes a number from 0 to 59 (or CIMDateTime::WILDCARD)
262 @param seconds a number from 0 to 59 (or CIMDateTime::WILDCARD)
263 @param microseconds a number from 0 to 999999
264 @param UTF offset in minutes (negative or positive).
265 @param numSignificantMicrosecondDigits the number of decimal digits of
266 the microseconds parameter (from left to right) that are
267 significant (all others are wildcarded) or six if they are all
268 significant.
269 @exception DateTimeOutOfRangeException.
270 */
271 void setTimeStamp(
272 Uint32 year,
273 Uint32 month,
274 Uint32 day,
275 mike 1.51 Uint32 hours,
276 Uint32 minutes,
277 Uint32 seconds,
278 Uint32 microseconds,
279 Uint32 numSignificantMicrosecondDigits,
280 Sint32 utcOffset);
281
282 /** Create datetime interval from components.
283 @param days a number from 0 to 99999999
284 @param hours a number from 0 to 23 (or CIMDateTime::WILDCARD)
285 @param minutes a number from 0 to 59 (or CIMDateTime::WILDCARD)
286 @param seconds a number from 0 to 59 (or CIMDateTime::WILDCARD)
287 @param microseconds a number from 0 to 999999
288 @param numSignificantMicrosecondDigits the number of decimal digits of
289 the microseconds parameter (from left to right) that are
290 significant (all others are wildcarded) or six if they are all
291 significant.
292 @exception DateTimeOutOfRangeException.
293 */
294 void setInterval(
295 Uint32 days,
296 mike 1.51 Uint32 hours,
297 Uint32 minutes,
298 Uint32 seconds,
299 Uint32 microseconds,
300 Uint32 numSignificantMicrosecondDigits);
301
302 #endif /* PEGASUS_USE_EXPERIMENTAL_INTERFACES */
303
|
304 karl 1.36 /** Clears the datetime class object. The date time is set to
|
305 kumpf 1.34 a zero interval value.
|
306 karl 1.12 */
|
307 mike 1.10 void clear();
308
|
309 kumpf 1.48 /** Returns the current local time in a CIMDateTime object.
310 @return CIMDateTime object containing the current local date and time.
|
311 kumpf 1.14 */
312 static CIMDateTime getCurrentDateTime();
313
|
314 kumpf 1.48 /** Computes the difference in microseconds between two CIMDateTime time
315 stamps or two CIMDateTime intervals.
|
316 kumpf 1.34 @param startTime Contains the start datetime.
317 @param finishTime Contains the finish datetime.
|
318 kumpf 1.48 @return An integer that contains the difference between the two
319 datetime values (in microseconds).
|
320 w.white 1.42 @exception InvalidDateTimeFormatException If arguments are not the same
321 type of CIMDateTime.
|
322 kumpf 1.14 */
|
323 kumpf 1.48 static Sint64 getDifference(CIMDateTime startTime, CIMDateTime finishTime);
324
325 /** Checks whether the datetime is an interval.
326 @return True if the datetime is an interval value, false otherwise.
327 */
|
328 kumpf 1.49 Boolean isInterval() const;
|
329 kumpf 1.53
330 /** Checks whether the datetime is an interval. (This non-const form is
331 maintained for compatibility.)
332 @return True if the datetime is an interval value, false otherwise.
333 */
|
334 kumpf 1.48 Boolean isInterval();
|
335 karl 1.36
|
336 mike 1.51 #ifdef PEGASUS_USE_EXPERIMENTAL_INTERFACES
337
338 /** Checks whether the datetime is a timestamp.
339 @return True if so.
340 */
341 Boolean isTimeStamp() const;
342
343 #endif /* PEGASUS_USE_EXPERIMENTAL_INTERFACES */
344
|
345 karl 1.36 /** Compares the CIMDateTime object to another CIMDateTime object for
|
346 kumpf 1.34 equality.
347 @param x CIMDateTime object to be compared.
|
348 kumpf 1.48 @return true if the two CIMDateTime objects are equal, false otherwise
|
349 w.white 1.42 @exception TypeMismatchException If arguments are of different types.
|
350 kumpf 1.31 */
|
351 mike 1.51 Boolean equal(const CIMDateTime& x) const;
|
352 kumpf 1.31
|
353 w.white 1.42 /** Converts a CIMDateTime object to its microsecond representation.
|
354 kumpf 1.48 @return Number of microseconds since the epoch (for time stamps) or
355 in a span of time (for intervals).
356 @exception DateTimeOutOfRangeException If conversion to UTC (an
357 internal operation) causes an overflow condition.
|
358 w.white 1.42 */
|
359 w.white 1.47 Uint64 toMicroSeconds() const;
|
360 w.white 1.42
|
361 kumpf 1.48 /** Adds two CIMDateTime objects and returns a CIMDateTime object that
362 represents the sum.
|
363 mike 1.51 @param x operand on the RHS of the operator
|
364 kumpf 1.48 @return A CIMDateTime object that is the result of adding the calling
365 object to the RHS operand
366 @exception DateTimeOutOfRangeException If the operation causes an
367 overflow condition.
368 @exception TypeMismatchException If the operands are not type
369 compatible (see table of operations).
|
370 w.white 1.42 */
|
371 mike 1.51 CIMDateTime operator+(const CIMDateTime& x) const;
|
372 w.white 1.42
373 /** Adds two CIMDateTime objects, returns the sum and changes
374 the value of the calling CIMDateTime object to match the return value.
|
375 mike 1.51 @param x operand on the RHS of the operator
|
376 kumpf 1.48 @return A CIMDateTime object that is the result of adding the calling
377 object to the RHS operand
378 @exception DateTimeOutOfRangeException If the operation causes an
379 overflow condition.
380 @exception TypeMismatchException If the operands are not type
381 compatible (see table of operations).
|
382 w.white 1.42 */
|
383 mike 1.51 CIMDateTime & operator+=(const CIMDateTime& x);
|
384 w.white 1.42
|
385 kumpf 1.48 /** Subtracts one CIMDateTime object from another and returns a
386 CIMDateTime object that represents the difference.
|
387 mike 1.51 @param x operand on the RHS of the operator
|
388 kumpf 1.48 @return A CIMDateTime object that is the result of subtracting the
|
389 w.white 1.42 the RHS object from the calling.
|
390 kumpf 1.48 @exception DateTimeOutOfRangeException If the operation causes an
391 underflow condition or conversion to UTC (an internal operation)
392 causes an overflow condition.
393 @exception TypeMismatchException If the operands are not type
394 compatible (see table of operations).
395 */
|
396 mike 1.51 CIMDateTime operator-(const CIMDateTime& x) const;
|
397 kumpf 1.48
398 /** Subtracts one CIMDateTime object from another, returns the difference
399 and changes the value of the calling CIMDateTime object to match the
400 return value.
|
401 mike 1.51 @param x operand on the RHS of the operator
|
402 kumpf 1.48 @return A CIMDateTime object that is the result of subtracting the
403 object on the RHS from the calling object.
404 @exception DateTimeOutOfRangeException If the operation causes an
405 underflow condition or conversion to UTC (an internal operation)
406 causes an overflow condition.
407 @exception TypeMismatchException If the operands are not type
408 compatible (see table of operations).
409 */
|
410 mike 1.51 CIMDateTime & operator-=(const CIMDateTime& x);
|
411 kumpf 1.48
412 /** Multiplies a CIMDateTime object by an integer and returns a CIMDateTime
413 object that represents the product.
|
414 kumpf 1.53 @param x integer operand on the RHS of the operator
|
415 kumpf 1.48 @return A CIMDateTime object that is the result of multiplying the
416 calling object by the RHS operand.
417 @exception DateTimeOutOfRangeException If the operation causes an
418 overflow condition.
419 @exception TypeMismatchException If the operands are not type
420 compatible (see table of operations).
|
421 w.white 1.42 */
|
422 mike 1.51 CIMDateTime operator*(Uint64 x) const;
|
423 w.white 1.42
|
424 kumpf 1.48 /** Multiplies a CIMDateTime object by an integer, returns the product
425 and changes the value of the calling object to match the returned
426 product.
|
427 kumpf 1.53 @param x integer operand on the RHS of the operator
|
428 kumpf 1.48 @return A CIMDateTime object that is the result of multiplying the
429 calling object by the RHS operand.
430 @exception DateTimeOutOfRangeException If the operation causes an
431 overflow condition.
432 @exception TypeMismatchException If the operands are not type
433 compatible (see table of operations).
434 */
|
435 mike 1.51 CIMDateTime & operator*=(Uint64 x);
|
436 kumpf 1.48
437 /** Divides a CIMDateTime object by an integer and returns a CIMDateTime
438 object that represents the quotient.
439 @param num integer operand on the RHS of the operator
440 @return A CIMDateTime object that is the result of dividing the calling
441 object by the RHS operand.
442 @exception DateTimeOutOfRangeException If conversion to UTC (an
443 internal operation) causes an overflow condition.
444 @exception TypeMismatchException If the CIMDateTime object does not
445 hold an interval value (see table of operations).
446 @exception Exception if param num is zero.
447 */
|
448 w.white 1.42 CIMDateTime operator/(Uint64 num) const;
449
|
450 kumpf 1.48 /** Divides a CIMDateTime object by an integer, returns the quotient
451 and changes the value of the calling object to match the returned
452 quotient.
453 @param num integer operand on the RHS of the operator
454 @return A CIMDateTime object that is the result of dividing the calling
455 object by the RHS operand.
456 @exception DateTimeOutOfRangeException If conversion to UTC (an
457 internal operation) causes an overflow condition.
458 @exception TypeMismatchException If the CIMDateTime object does not
459 hold an interval value (see table of operations).
460 @exception Exception if param num is zero.
461 */
|
462 w.white 1.42 CIMDateTime & operator/=(Uint64 num);
463
|
464 kumpf 1.48 /** Divides a CIMDateTime object by another CIMDateTime object and returns
465 an integer quotient.
466 @param cdt CIMDateTime object on the RHS of the operator
467 @return An integer that is the result of dividing the number of
468 microseconds represented by the calling CIMDateTime object by the
469 number of microseconds represented by the CIMDateTime object on the
470 RHS of the operator.
471 @exception DateTimeOutOfRangeException If conversion to UTC (an
472 internal operation) causes an overflow condition.
473 @exception TypeMismatchException If the operands are not type
474 compatible (see table of operations).
475 */
476 Uint64 operator/(const CIMDateTime& cdt) const;
477
478 /** Compare two CIMDateTime objects and returns true if the LHS is
479 less than the RHS.
|
480 mike 1.51 @param x operand on the RHS of the operator
|
481 kumpf 1.48 @return true if the LHS is less than the RHS, false otherwise.
482 @exception DateTimeOutOfRangeException If conversion to UTC (an
483 internal operation) causes an overflow condition.
484 @exception TypeMismatchException if operands are not of the same
485 type.
|
486 w.white 1.42 */
|
487 mike 1.51 Boolean operator<(const CIMDateTime& x) const;
|
488 w.white 1.42
|
489 kumpf 1.48 /** Compare two CIMDateTime objects and returns true if the LHS is
490 less than or equal to the RHS.
|
491 mike 1.51 @param x operand on the RHS of the operator
|
492 kumpf 1.48 @return true if the LHS is less than or equal to the RHS, false
493 otherwise.
494 @exception DateTimeOutOfRangeException If conversion to UTC (an
495 internal operation) causes an overflow condition.
496 @exception TypeMismatchException if operands are not of the same
497 type.
498 */
|
499 mike 1.51 Boolean operator<=(const CIMDateTime& x) const;
|
500 kumpf 1.48
501 /** Compare two CIMDateTime objects and returns true if the LHS is
502 greater than the RHS.
|
503 mike 1.51 @param x operand on the RHS of the operator
|
504 kumpf 1.48 @return true if the LHS is greater than the RHS, false otherwise.
505 @exception DateTimeOutOfRangeException If conversion to UTC (an
506 internal operation) causes an overflow condition.
507 @exception TypeMismatchException if operands are not of the same
508 type.
|
509 w.white 1.42 */
|
510 mike 1.51 Boolean operator>(const CIMDateTime & x) const;
|
511 w.white 1.42
|
512 kumpf 1.48 /** Compare two CIMDateTime objects and returns true if the LHS is
513 greater than or equal to the RHS.
|
514 mike 1.51 @param x operand on the RHS of the operator
|
515 kumpf 1.48 @return true if the LHS is greater than or equal to the RHS, false
516 otherwise.
517 @exception DateTimeOutOfRangeException If conversion to UTC (an
518 internal operation) causes an overflow condition.
519 @exception TypeMismatchException if operands are not of the same
520 type.
|
521 w.white 1.42 */
|
522 mike 1.51 Boolean operator>=(const CIMDateTime & x) const;
|
523 w.white 1.42
|
524 kumpf 1.48 /** Compare two CIMDateTime objects and returns true if the LHS is
525 not equal to the RHS.
|
526 mike 1.51 @param x operand on the RHS of the operator
|
527 kumpf 1.48 @return true if the LHS is not equal to RHS, false otherwise.
528 @exception DateTimeOutOfRangeException If conversion to UTC (an
529 internal operation) causes an overflow condition.
530 @exception TypeMismatchException if operands are not of the same
531 type.
|
532 w.white 1.42 */
|
533 mike 1.51 Boolean operator!=(const CIMDateTime & x) const;
|
534 w.white 1.42
|
535 kumpf 1.48 private:
|
536 a.arora 1.39 CIMDateTimeRep* _rep;
|
537 mike 1.51 CIMDateTime(CIMDateTimeRep*);
|
538 thilo.boehm 1.56.2.4 CIMDateTime(const CIMDateTimeRep*);
539
|
540 sahana.prabhakar 1.56 friend class CIMBuffer;
|
541 thilo.boehm 1.56.2.1 friend class SCMOClass;
|
542 thilo.boehm 1.56.2.2 friend class SCMODump;
|
543 thilo.boehm 1.56.2.3 friend class SCMOInstance;
|
544 r.kieninger 1.56.2.5 friend class CMPISCMOUtilities;
|
545 mike 1.10 };
|
546 w.white 1.42
|
547 kumpf 1.48 /** Compares two CIMDateTime objects and returns true if they represent the
548 same time or length of time.
549 @param x one of the CIMDateTime objects to be compared
550 @param y one of the CIMDateTime objects to be compared
551 @return true if the two objects passed in represent the same time or
552 length of time, false otherwise.
|
553 w.white 1.42 */
|
554 kumpf 1.48 PEGASUS_COMMON_LINKAGE Boolean operator==(
555 const CIMDateTime& x,
556 const CIMDateTime& y);
|
557 mike 1.10
558 #define PEGASUS_ARRAY_T CIMDateTime
|
559 kumpf 1.25 # include <Pegasus/Common/ArrayInter.h>
|
560 mike 1.10 #undef PEGASUS_ARRAY_T
561
562 PEGASUS_NAMESPACE_END
563
|
564 mike 1.51 #endif /* Pegasus_CIMDateTime_h */
|