1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 2009-2010, International Business Machines Corporation and *
6 * others. All Rights Reserved. *
7 *******************************************************************************
8 */
9
10 /**
11 * \file
12 * \brief C API: Time zone transition classes
13 */
14
15 #include "unicode/utypes.h"
16
17 #if !UCONFIG_NO_FORMATTING
18
19 #include "unicode/uobject.h"
20 #include "ztrans.h"
21 #include "unicode/tztrans.h"
22 #include "cmemory.h"
23 #include "unicode/ustring.h"
24 #include "unicode/parsepos.h"
25
26 U_NAMESPACE_USE
27
28 U_CAPI ZTrans* U_EXPORT2
ztrans_open(UDate time,const void * from,const void * to)29 ztrans_open(UDate time, const void* from, const void* to){
30 return (ZTrans*) new TimeZoneTransition(time,*(TimeZoneRule*)from,*(TimeZoneRule*)to);
31 }
32
33 U_CAPI ZTrans* U_EXPORT2
ztrans_openEmpty()34 ztrans_openEmpty() {
35 return (ZTrans*) new TimeZoneTransition();
36 }
37
38 U_CAPI void U_EXPORT2
ztrans_close(ZTrans * trans)39 ztrans_close(ZTrans *trans) {
40 delete (TimeZoneTransition*)trans;
41 }
42
43 U_CAPI ZTrans* U_EXPORT2
ztrans_clone(ZTrans * trans)44 ztrans_clone(ZTrans *trans) {
45 return (ZTrans*) (((TimeZoneTransition*)trans)->TimeZoneTransition::clone());
46 }
47
48 U_CAPI UBool U_EXPORT2
ztrans_equals(const ZTrans * trans1,const ZTrans * trans2)49 ztrans_equals(const ZTrans* trans1, const ZTrans* trans2){
50 return *(const TimeZoneTransition*)trans1 == *(const TimeZoneTransition*)trans2;
51 }
52
53 U_CAPI UDate U_EXPORT2
ztrans_getTime(ZTrans * trans)54 ztrans_getTime(ZTrans* trans) {
55 return ((TimeZoneTransition*)trans)->TimeZoneTransition::getTime();
56 }
57
58 U_CAPI void U_EXPORT2
ztrans_setTime(ZTrans * trans,UDate time)59 ztrans_setTime(ZTrans* trans, UDate time) {
60 return ((TimeZoneTransition*)trans)->TimeZoneTransition::setTime(time);
61 }
62
63 U_CAPI void* U_EXPORT2
ztrans_getFrom(ZTrans * & trans)64 ztrans_getFrom(ZTrans* & trans) {
65 return (void*) (((TimeZoneTransition*)trans)->TimeZoneTransition::getFrom());
66 }
67
68 U_CAPI void U_EXPORT2
ztrans_setFrom(ZTrans * trans,const void * from)69 ztrans_setFrom(ZTrans* trans, const void* from) {
70 return ((TimeZoneTransition*)trans)->TimeZoneTransition::setFrom(*(TimeZoneRule*)from);
71 }
72
73 U_CAPI void U_EXPORT2
ztrans_adoptFrom(ZTrans * trans,void * from)74 ztrans_adoptFrom(ZTrans* trans, void* from) {
75 return ((TimeZoneTransition*)trans)->TimeZoneTransition::adoptFrom((TimeZoneRule*)from);
76 }
77
78 U_CAPI void* U_EXPORT2
ztrans_getTo(ZTrans * trans)79 ztrans_getTo(ZTrans* trans){
80 return (void*) (((TimeZoneTransition*)trans)->TimeZoneTransition::getTo());
81 }
82
83 U_CAPI void U_EXPORT2
ztrans_setTo(ZTrans * trans,const void * to)84 ztrans_setTo(ZTrans* trans, const void* to) {
85 return ((TimeZoneTransition*)trans)->TimeZoneTransition::setTo(*(TimeZoneRule*)to);
86 }
87
88 U_CAPI void U_EXPORT2
ztrans_adoptTo(ZTrans * trans,void * to)89 ztrans_adoptTo(ZTrans* trans, void* to) {
90 return ((TimeZoneTransition*)trans)->TimeZoneTransition::adoptTo((TimeZoneRule*)to);
91 }
92
93 U_CAPI UClassID U_EXPORT2
ztrans_getStaticClassID(ZTrans * trans)94 ztrans_getStaticClassID(ZTrans* trans) {
95 return ((TimeZoneTransition*)trans)->TimeZoneTransition::getStaticClassID();
96 }
97
98 U_CAPI UClassID U_EXPORT2
ztrans_getDynamicClassID(ZTrans * trans)99 ztrans_getDynamicClassID(ZTrans* trans){
100 return ((TimeZoneTransition*)trans)->TimeZoneTransition::getDynamicClassID();
101 }
102
103 #endif
104