intl/icu/source/i18n/ztrans.h

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /*
     2 *******************************************************************************
     3 * Copyright (C) 2009-2011, International Business Machines Corporation and
     4 * others. All Rights Reserved.
     5 *******************************************************************************
     6 */
     7 #ifndef __ZTRANS_H
     8 #define __ZTRANS_H
    10 /**
    11  * \file 
    12  * \brief C API: Time zone transition classes
    13  */
    15 #include "unicode/utypes.h"
    17 #if !UCONFIG_NO_FORMATTING
    19 #ifndef UCNV_H
    21 /**
    22  * A TimeZoneTransition.  Use the ztrans_* API to manipulate.  Create with
    23  * ztrans_open*, and destroy with ztrans_close.
    24  */
    25 struct ZTrans;
    26 typedef struct ZTrans ZTrans;
    28 #endif
    30 /**
    31  * Constructs a time zone transition with the time and the rules before/after
    32  * the transition.
    33  * 
    34  * @param time  The time of transition in milliseconds since the base time.
    35  * @param from  The time zone rule used before the transition.
    36  * @param to    The time zone rule used after the transition.
    37  */
    38 U_CAPI ZTrans* U_EXPORT2
    39 ztrans_open(UDate time, const void* from, const void* to);
    41 /**
    42  * Constructs an empty <code>TimeZoneTransition</code>
    43  */
    44 U_CAPI ZTrans* U_EXPORT2
    45 ztrans_openEmpty();
    47 /**
    48  * Disposes of the storage used by a ZTrans object.  This function should
    49  * be called exactly once for objects returned by ztrans_open*.
    50  * @param trans the object to dispose of
    51  */
    52 U_CAPI void U_EXPORT2
    53 ztrans_close(ZTrans *trans);
    55 /**
    56  * Returns a copy of this object.
    57  * @param rule the original ZRule
    58  * @return the newly allocated copy of the ZRule
    59  */
    60 U_CAPI ZTrans* U_EXPORT2
    61 ztrans_clone(ZTrans *trans);
    63 /**
    64  * Returns true if trans1 is identical to trans2
    65  * and vis versa.
    66  * @param trans1 to be checked for containment
    67  * @param trans2 to be checked for containment
    68  * @return true if the test condition is met
    69  */
    70 U_CAPI UBool U_EXPORT2
    71 ztrans_equals(const ZTrans* trans1, const ZTrans* trans2);
    73 /**
    74  * Returns the time of transition in milliseconds.
    75  * param trans, the transition to use
    76  * @return The time of the transition in milliseconds since the 1970 Jan 1 epoch time.
    77  */
    78 U_CAPI UDate U_EXPORT2
    79 ztrans_getTime(ZTrans* trans);
    81 /**
    82  * Sets the time of transition in milliseconds.
    83  * param trans, the transition to use
    84  * @param time The time of the transition in milliseconds since the 1970 Jan 1 epoch time.
    85  */
    86 U_CAPI void U_EXPORT2
    87 ztrans_setTime(ZTrans* trans, UDate time);
    89 /**
    90  * Returns the rule used before the transition.
    91  * param trans, the transition to use
    92  * @return The time zone rule used after the transition.
    93  */
    94 U_CAPI void* U_EXPORT2
    95 ztrans_getFrom(ZTrans* & trans);
    97 /**
    98  * Sets the rule used before the transition.  The caller remains
    99  * responsible for deleting the TimeZoneRule object.
   100  * param trans, the transition to use
   101  * param trans, the transition to use
   102  * @param from The time zone rule used before the transition.
   103  */
   104 U_CAPI void U_EXPORT2
   105 ztrans_setFrom(ZTrans* trans, const void* from);
   107 /**
   108  * Adopts the rule used before the transition.  The caller must
   109  * not delete the TimeZoneRule object passed in.
   110  * param trans, the transition to use
   111  * @param from The time zone rule used before the transition.
   112  */
   113 U_CAPI void U_EXPORT2
   114 ztrans_adoptFrom(ZTrans* trans, void* from);
   116 /**
   117  * Returns the rule used after the transition.
   118  * param trans, the transition to use
   119  * @return The time zone rule used after the transition.
   120  */
   121 U_CAPI void* U_EXPORT2
   122 ztrans_getTo(ZTrans* trans);
   124 /**
   125  * Sets the rule used after the transition.  The caller remains
   126  * responsible for deleting the TimeZoneRule object.
   127  * param trans, the transition to use
   128  * @param to The time zone rule used after the transition.
   129  */
   130 U_CAPI void U_EXPORT2
   131 ztrans_setTo(ZTrans* trans, const void* to);
   133 /**
   134  * Adopts the rule used after the transition.  The caller must
   135  * not delete the TimeZoneRule object passed in.
   136  * param trans, the transition to use
   137  * @param to The time zone rule used after the transition.
   138  */
   139 U_CAPI void U_EXPORT2
   140 ztrans_adoptTo(ZTrans* trans, void* to);
   142 /**
   143  * Return the class ID for this class. This is useful only for comparing to
   144  * a return value from getDynamicClassID(). For example:
   145  * <pre>
   146  * .   Base* polymorphic_pointer = createPolymorphicObject();
   147  * .   if (polymorphic_pointer->getDynamicClassID() ==
   148  * .       erived::getStaticClassID()) ...
   149  * </pre>
   150  * param trans, the transition to use
   151  * @return          The class ID for all objects of this class.
   152  */
   153 U_CAPI UClassID U_EXPORT2
   154 ztrans_getStaticClassID(ZTrans* trans);
   156 /**
   157  * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
   158  * method is to implement a simple version of RTTI, since not all C++
   159  * compilers support genuine RTTI. Polymorphic operator==() and clone()
   160  * methods call this method.
   161  *
   162  * param trans, the transition to use
   163  * @return          The class ID for this object. All objects of a
   164  *                  given class have the same class ID.  Objects of
   165  *                  other classes have different class IDs.
   166  */
   167 U_CAPI UClassID U_EXPORT2
   168 ztrans_getDynamicClassID(ZTrans* trans);
   170 #endif
   172 #endif

mercurial