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