Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/unicode/tztrans.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 // © 2016 and later: Unicode, Inc. and others. | |
2 // License & terms of use: http://www.unicode.org/copyright.html | |
3 /* | |
4 ******************************************************************************* | |
5 * Copyright (C) 2007-2008, International Business Machines Corporation and * | |
6 * others. All Rights Reserved. * | |
7 ******************************************************************************* | |
8 */ | |
9 #ifndef TZTRANS_H | |
10 #define TZTRANS_H | |
11 | |
12 /** | |
13 * \file | |
14 * \brief C++ API: Time zone transition | |
15 */ | |
16 | |
17 #include "unicode/utypes.h" | |
18 | |
19 #if U_SHOW_CPLUSPLUS_API | |
20 | |
21 #if !UCONFIG_NO_FORMATTING | |
22 | |
23 #include "unicode/uobject.h" | |
24 | |
25 U_NAMESPACE_BEGIN | |
26 | |
27 // Forward declaration | |
28 class TimeZoneRule; | |
29 | |
30 /** | |
31 * <code>TimeZoneTransition</code> is a class representing a time zone transition. | |
32 * An instance has a time of transition and rules for both before and after the transition. | |
33 * @stable ICU 3.8 | |
34 */ | |
35 class U_I18N_API TimeZoneTransition : public UObject { | |
36 public: | |
37 /** | |
38 * Constructs a <code>TimeZoneTransition</code> with the time and the rules before/after | |
39 * the transition. | |
40 * | |
41 * @param time The time of transition in milliseconds since the base time. | |
42 * @param from The time zone rule used before the transition. | |
43 * @param to The time zone rule used after the transition. | |
44 * @stable ICU 3.8 | |
45 */ | |
46 TimeZoneTransition(UDate time, const TimeZoneRule& from, const TimeZoneRule& to); | |
47 | |
48 /** | |
49 * Constructs an empty <code>TimeZoneTransition</code> | |
50 * @stable ICU 3.8 | |
51 */ | |
52 TimeZoneTransition(); | |
53 | |
54 /** | |
55 * Copy constructor. | |
56 * @param source The TimeZoneTransition object to be copied. | |
57 * @stable ICU 3.8 | |
58 */ | |
59 TimeZoneTransition(const TimeZoneTransition& source); | |
60 | |
61 /** | |
62 * Destructor. | |
63 * @stable ICU 3.8 | |
64 */ | |
65 ~TimeZoneTransition(); | |
66 | |
67 /** | |
68 * Clone this TimeZoneTransition object polymorphically. The caller owns the result and | |
69 * should delete it when done. | |
70 * @return A copy of the object. | |
71 * @stable ICU 3.8 | |
72 */ | |
73 TimeZoneTransition* clone() const; | |
74 | |
75 /** | |
76 * Assignment operator. | |
77 * @param right The object to be copied. | |
78 * @stable ICU 3.8 | |
79 */ | |
80 TimeZoneTransition& operator=(const TimeZoneTransition& right); | |
81 | |
82 /** | |
83 * Return true if the given TimeZoneTransition objects are semantically equal. Objects | |
84 * of different subclasses are considered unequal. | |
85 * @param that The object to be compared with. | |
86 * @return true if the given TimeZoneTransition objects are semantically equal. | |
87 * @stable ICU 3.8 | |
88 */ | |
89 UBool operator==(const TimeZoneTransition& that) const; | |
90 | |
91 /** | |
92 * Return true if the given TimeZoneTransition objects are semantically unequal. Objects | |
93 * of different subclasses are considered unequal. | |
94 * @param that The object to be compared with. | |
95 * @return true if the given TimeZoneTransition objects are semantically unequal. | |
96 * @stable ICU 3.8 | |
97 */ | |
98 UBool operator!=(const TimeZoneTransition& that) const; | |
99 | |
100 /** | |
101 * Returns the time of transition in milliseconds. | |
102 * @return The time of the transition in milliseconds since the 1970 Jan 1 epoch time. | |
103 * @stable ICU 3.8 | |
104 */ | |
105 UDate getTime(void) const; | |
106 | |
107 /** | |
108 * Sets the time of transition in milliseconds. | |
109 * @param time The time of the transition in milliseconds since the 1970 Jan 1 epoch time. | |
110 * @stable ICU 3.8 | |
111 */ | |
112 void setTime(UDate time); | |
113 | |
114 /** | |
115 * Returns the rule used before the transition. | |
116 * @return The time zone rule used after the transition. | |
117 * @stable ICU 3.8 | |
118 */ | |
119 const TimeZoneRule* getFrom(void) const; | |
120 | |
121 /** | |
122 * Sets the rule used before the transition. The caller remains | |
123 * responsible for deleting the <code>TimeZoneRule</code> object. | |
124 * @param from The time zone rule used before the transition. | |
125 * @stable ICU 3.8 | |
126 */ | |
127 void setFrom(const TimeZoneRule& from); | |
128 | |
129 /** | |
130 * Adopts the rule used before the transition. The caller must | |
131 * not delete the <code>TimeZoneRule</code> object passed in. | |
132 * @param from The time zone rule used before the transition. | |
133 * @stable ICU 3.8 | |
134 */ | |
135 void adoptFrom(TimeZoneRule* from); | |
136 | |
137 /** | |
138 * Sets the rule used after the transition. The caller remains | |
139 * responsible for deleting the <code>TimeZoneRule</code> object. | |
140 * @param to The time zone rule used after the transition. | |
141 * @stable ICU 3.8 | |
142 */ | |
143 void setTo(const TimeZoneRule& to); | |
144 | |
145 /** | |
146 * Adopts the rule used after the transition. The caller must | |
147 * not delete the <code>TimeZoneRule</code> object passed in. | |
148 * @param to The time zone rule used after the transition. | |
149 * @stable ICU 3.8 | |
150 */ | |
151 void adoptTo(TimeZoneRule* to); | |
152 | |
153 /** | |
154 * Returns the rule used after the transition. | |
155 * @return The time zone rule used after the transition. | |
156 * @stable ICU 3.8 | |
157 */ | |
158 const TimeZoneRule* getTo(void) const; | |
159 | |
160 private: | |
161 UDate fTime; | |
162 TimeZoneRule* fFrom; | |
163 TimeZoneRule* fTo; | |
164 | |
165 public: | |
166 /** | |
167 * Return the class ID for this class. This is useful only for comparing to | |
168 * a return value from getDynamicClassID(). For example: | |
169 * <pre> | |
170 * . Base* polymorphic_pointer = createPolymorphicObject(); | |
171 * . if (polymorphic_pointer->getDynamicClassID() == | |
172 * . erived::getStaticClassID()) ... | |
173 * </pre> | |
174 * @return The class ID for all objects of this class. | |
175 * @stable ICU 3.8 | |
176 */ | |
177 static UClassID U_EXPORT2 getStaticClassID(void); | |
178 | |
179 /** | |
180 * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This | |
181 * method is to implement a simple version of RTTI, since not all C++ | |
182 * compilers support genuine RTTI. Polymorphic operator==() and clone() | |
183 * methods call this method. | |
184 * | |
185 * @return The class ID for this object. All objects of a | |
186 * given class have the same class ID. Objects of | |
187 * other classes have different class IDs. | |
188 * @stable ICU 3.8 | |
189 */ | |
190 virtual UClassID getDynamicClassID(void) const; | |
191 }; | |
192 | |
193 U_NAMESPACE_END | |
194 | |
195 #endif /* #if !UCONFIG_NO_FORMATTING */ | |
196 | |
197 #endif /* U_SHOW_CPLUSPLUS_API */ | |
198 | |
199 #endif // TZTRANS_H | |
200 | |
201 //eof |