00001 /* 00002 * RawDayTimeInterval.hpp 00003 * 00004 * Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. 00005 * 00006 * Oracle is a registered trademarks of Oracle Corporation and/or its 00007 * affiliates. 00008 * 00009 * This software is the confidential and proprietary information of Oracle 00010 * Corporation. You shall not disclose such confidential and proprietary 00011 * information and shall use it only in accordance with the terms of the 00012 * license agreement you entered into with Oracle. 00013 * 00014 * This notice may not be removed or altered. 00015 */ 00016 #ifndef COH_RAW_DAY_TIME_INTERVAL_HPP 00017 #define COH_RAW_DAY_TIME_INTERVAL_HPP 00018 00019 #include "coherence/lang.ns" 00020 00021 #include "coherence/io/pof/PofIntrinsic.hpp" 00022 00023 00024 00025 COH_OPEN_NAMESPACE3(coherence,io,pof) 00026 00027 00028 /** 00029 * Raw immutable POF day-time interval value. 00030 * 00031 * @author jh 2008.04.08 00032 */ 00033 class COH_EXPORT RawDayTimeInterval 00034 : public cloneable_spec<RawDayTimeInterval, 00035 extends<Object>, 00036 implements<PofIntrinsic> > 00037 { 00038 friend class factory<RawDayTimeInterval>; 00039 00040 // ----- constructors --------------------------------------------------- 00041 00042 protected: 00043 /** 00044 * Construct a raw POF day-time interval value. 00045 * 00046 * @param cDays the number of days in the day-time interval 00047 * @param cHours the number of hours in the day-time interval 00048 * @param cMinutes the number of minutes in the day-time interval 00049 * @param cSeconds the number of seconds in the day-time interval 00050 * @param cNanos the number of nanoseconds in the day-time interval 00051 * 00052 * @return the new RawDayTimeInterval 00053 */ 00054 RawDayTimeInterval(int32_t cDays, int32_t cHours, int32_t cMinutes, 00055 int32_t cSeconds, int32_t cNanos); 00056 00057 /** 00058 * Copy constructor. 00059 */ 00060 RawDayTimeInterval(const RawDayTimeInterval& that); 00061 00062 00063 // ----- Object interface ----------------------------------------------- 00064 00065 public: 00066 /** 00067 * {@inheritDoc} 00068 */ 00069 virtual bool equals(Object::View v) const; 00070 00071 /** 00072 * {@inheritDoc} 00073 */ 00074 virtual size32_t hashCode() const; 00075 00076 /** 00077 * {@inheritDoc} 00078 */ 00079 virtual bool isImmutable() const; 00080 00081 /** 00082 * {@inheritDoc} 00083 */ 00084 virtual TypedHandle<const String> toString() const; 00085 00086 00087 // ----- accessors ------------------------------------------------------ 00088 00089 public: 00090 /** 00091 * Determine the number of days in the day-time interval. 00092 * 00093 * @return the number of days in the day-time interval 00094 */ 00095 virtual int32_t getDays() const; 00096 00097 /** 00098 * Determine the number of hours in the day-time interval. 00099 * 00100 * @return the number of hours in the day-time interval 00101 */ 00102 virtual int32_t getHours() const; 00103 00104 /** 00105 * Determine the number of minutes in the day-time interval. 00106 * 00107 * @return the number of minutes in the day-time interval 00108 */ 00109 virtual int32_t getMinutes() const; 00110 00111 /** 00112 * Determine the number of seconds in the day-time interval. 00113 * 00114 * @return the number of seconds in the day-time interval 00115 */ 00116 virtual int32_t getSeconds() const; 00117 00118 /** 00119 * Determine the number of nanoseconds in the day-time interval. 00120 * 00121 * @return the number of nanoseconds in the day-time interval 00122 */ 00123 virtual int32_t getNanos() const; 00124 00125 00126 // ----- data members --------------------------------------------------- 00127 00128 protected: 00129 /** 00130 * The number of days in the day-time interval. 00131 */ 00132 int32_t m_cDays; 00133 00134 /** 00135 * The number of hours in the day-time interval. 00136 */ 00137 int32_t m_cHours; 00138 00139 /** 00140 * The number of minutes in the day-time interval. 00141 */ 00142 int32_t m_cMinutes; 00143 00144 /** 00145 * The number of seconds in the day-time interval. 00146 */ 00147 int32_t m_cSeconds; 00148 00149 /** 00150 * The number of nanoseconds in the day-time interval. 00151 */ 00152 int32_t m_cNanos; 00153 }; 00154 00155 COH_CLOSE_NAMESPACE3 00156 00157 #endif // COH_RAW_DAY_TIME_INTERVAL_HPP