measunit.h (136316B)
1 // © 2016 and later: Unicode, Inc. and others. 2 // License & terms of use: http://www.unicode.org/copyright.html 3 /* 4 ********************************************************************** 5 * Copyright (c) 2004-2016, International Business Machines 6 * Corporation and others. All Rights Reserved. 7 ********************************************************************** 8 * Author: Alan Liu 9 * Created: April 26, 2004 10 * Since: ICU 3.0 11 ********************************************************************** 12 */ 13 #ifndef __MEASUREUNIT_H__ 14 #define __MEASUREUNIT_H__ 15 16 #include "unicode/utypes.h" 17 18 #if U_SHOW_CPLUSPLUS_API 19 20 #if !UCONFIG_NO_FORMATTING 21 22 #include <utility> 23 #include "unicode/unistr.h" 24 #include "unicode/localpointer.h" 25 26 /** 27 * \file 28 * \brief C++ API: A unit for measuring a quantity. 29 */ 30 31 U_NAMESPACE_BEGIN 32 33 class StringEnumeration; 34 class MeasureUnitImpl; 35 36 namespace number::impl { 37 class LongNameHandler; 38 } // namespace number::impl 39 40 /** 41 * Enumeration for unit complexity. There are three levels: 42 * 43 * - SINGLE: A single unit, optionally with a power and/or SI or binary prefix. 44 * Examples: hectare, square-kilometer, kilojoule, per-second, mebibyte. 45 * - COMPOUND: A unit composed of the product of multiple single units. Examples: 46 * meter-per-second, kilowatt-hour, kilogram-meter-per-square-second. 47 * - MIXED: A unit composed of the sum of multiple single units. Examples: foot+inch, 48 * hour+minute+second, degree+arcminute+arcsecond. 49 * 50 * The complexity determines which operations are available. For example, you cannot set the power 51 * or prefix of a compound unit. 52 * 53 * @stable ICU 67 54 */ 55 enum UMeasureUnitComplexity { 56 /** 57 * A single unit, like kilojoule. 58 * 59 * @stable ICU 67 60 */ 61 UMEASURE_UNIT_SINGLE, 62 63 /** 64 * A compound unit, like meter-per-second. 65 * 66 * @stable ICU 67 67 */ 68 UMEASURE_UNIT_COMPOUND, 69 70 /** 71 * A mixed unit, like hour+minute. 72 * 73 * @stable ICU 67 74 */ 75 UMEASURE_UNIT_MIXED 76 }; 77 78 79 /** 80 * Enumeration for SI and binary prefixes, e.g. "kilo-", "nano-", "mebi-". 81 * 82 * Enum values should be treated as opaque: use umeas_getPrefixPower() and 83 * umeas_getPrefixBase() to find their corresponding values. 84 * 85 * @stable ICU 69 86 * @see umeas_getPrefixBase 87 * @see umeas_getPrefixPower 88 */ 89 typedef enum UMeasurePrefix { 90 /** 91 * The absence of an SI or binary prefix. 92 * 93 * The integer representation of this enum value is an arbitrary 94 * implementation detail and should not be relied upon: use 95 * umeas_getPrefixPower() to obtain meaningful values. 96 * 97 * @stable ICU 69 98 */ 99 UMEASURE_PREFIX_ONE = 30 + 0, 100 101 /** 102 * SI prefix: yotta, 10^24. 103 * 104 * @stable ICU 69 105 */ 106 UMEASURE_PREFIX_YOTTA = UMEASURE_PREFIX_ONE + 24, 107 108 /** 109 * SI prefix: ronna, 10^27. 110 * 111 * @stable ICU 75 112 */ 113 UMEASURE_PREFIX_RONNA = UMEASURE_PREFIX_ONE + 27, 114 115 /** 116 * SI prefix: quetta, 10^30. 117 * 118 * @stable ICU 75 119 */ 120 UMEASURE_PREFIX_QUETTA = UMEASURE_PREFIX_ONE + 30, 121 122 #ifndef U_HIDE_INTERNAL_API 123 /** 124 * ICU use only. 125 * Used to determine the set of base-10 SI prefixes. 126 * @internal 127 */ 128 #ifndef U_HIDE_DRAFT_API 129 UMEASURE_PREFIX_INTERNAL_MAX_SI = UMEASURE_PREFIX_QUETTA, 130 #else /* U_HIDE_DRAFT_API */ 131 UMEASURE_PREFIX_INTERNAL_MAX_SI = UMEASURE_PREFIX_YOTTA, 132 #endif /* U_HIDE_DRAFT_API */ 133 134 #endif /* U_HIDE_INTERNAL_API */ 135 136 /** 137 * SI prefix: zetta, 10^21. 138 * 139 * @stable ICU 69 140 */ 141 UMEASURE_PREFIX_ZETTA = UMEASURE_PREFIX_ONE + 21, 142 143 /** 144 * SI prefix: exa, 10^18. 145 * 146 * @stable ICU 69 147 */ 148 UMEASURE_PREFIX_EXA = UMEASURE_PREFIX_ONE + 18, 149 150 /** 151 * SI prefix: peta, 10^15. 152 * 153 * @stable ICU 69 154 */ 155 UMEASURE_PREFIX_PETA = UMEASURE_PREFIX_ONE + 15, 156 157 /** 158 * SI prefix: tera, 10^12. 159 * 160 * @stable ICU 69 161 */ 162 UMEASURE_PREFIX_TERA = UMEASURE_PREFIX_ONE + 12, 163 164 /** 165 * SI prefix: giga, 10^9. 166 * 167 * @stable ICU 69 168 */ 169 UMEASURE_PREFIX_GIGA = UMEASURE_PREFIX_ONE + 9, 170 171 /** 172 * SI prefix: mega, 10^6. 173 * 174 * @stable ICU 69 175 */ 176 UMEASURE_PREFIX_MEGA = UMEASURE_PREFIX_ONE + 6, 177 178 /** 179 * SI prefix: kilo, 10^3. 180 * 181 * @stable ICU 69 182 */ 183 UMEASURE_PREFIX_KILO = UMEASURE_PREFIX_ONE + 3, 184 185 /** 186 * SI prefix: hecto, 10^2. 187 * 188 * @stable ICU 69 189 */ 190 UMEASURE_PREFIX_HECTO = UMEASURE_PREFIX_ONE + 2, 191 192 /** 193 * SI prefix: deka, 10^1. 194 * 195 * @stable ICU 69 196 */ 197 UMEASURE_PREFIX_DEKA = UMEASURE_PREFIX_ONE + 1, 198 199 /** 200 * SI prefix: deci, 10^-1. 201 * 202 * @stable ICU 69 203 */ 204 UMEASURE_PREFIX_DECI = UMEASURE_PREFIX_ONE + -1, 205 206 /** 207 * SI prefix: centi, 10^-2. 208 * 209 * @stable ICU 69 210 */ 211 UMEASURE_PREFIX_CENTI = UMEASURE_PREFIX_ONE + -2, 212 213 /** 214 * SI prefix: milli, 10^-3. 215 * 216 * @stable ICU 69 217 */ 218 UMEASURE_PREFIX_MILLI = UMEASURE_PREFIX_ONE + -3, 219 220 /** 221 * SI prefix: micro, 10^-6. 222 * 223 * @stable ICU 69 224 */ 225 UMEASURE_PREFIX_MICRO = UMEASURE_PREFIX_ONE + -6, 226 227 /** 228 * SI prefix: nano, 10^-9. 229 * 230 * @stable ICU 69 231 */ 232 UMEASURE_PREFIX_NANO = UMEASURE_PREFIX_ONE + -9, 233 234 /** 235 * SI prefix: pico, 10^-12. 236 * 237 * @stable ICU 69 238 */ 239 UMEASURE_PREFIX_PICO = UMEASURE_PREFIX_ONE + -12, 240 241 /** 242 * SI prefix: femto, 10^-15. 243 * 244 * @stable ICU 69 245 */ 246 UMEASURE_PREFIX_FEMTO = UMEASURE_PREFIX_ONE + -15, 247 248 /** 249 * SI prefix: atto, 10^-18. 250 * 251 * @stable ICU 69 252 */ 253 UMEASURE_PREFIX_ATTO = UMEASURE_PREFIX_ONE + -18, 254 255 /** 256 * SI prefix: zepto, 10^-21. 257 * 258 * @stable ICU 69 259 */ 260 UMEASURE_PREFIX_ZEPTO = UMEASURE_PREFIX_ONE + -21, 261 262 /** 263 * SI prefix: yocto, 10^-24. 264 * 265 * @stable ICU 69 266 */ 267 UMEASURE_PREFIX_YOCTO = UMEASURE_PREFIX_ONE + -24, 268 269 /** 270 * SI prefix: ronto, 10^-27. 271 * 272 * @stable ICU 75 273 */ 274 UMEASURE_PREFIX_RONTO = UMEASURE_PREFIX_ONE + -27, 275 276 /** 277 * SI prefix: quecto, 10^-30. 278 * 279 * @stable ICU 75 280 */ 281 UMEASURE_PREFIX_QUECTO = UMEASURE_PREFIX_ONE + -30, 282 283 #ifndef U_HIDE_INTERNAL_API 284 /** 285 * ICU use only. 286 * Used to determine the set of base-10 SI prefixes. 287 * @internal 288 */ 289 #ifndef U_HIDE_DRAFT_API 290 UMEASURE_PREFIX_INTERNAL_MIN_SI = UMEASURE_PREFIX_QUECTO, 291 #else /* U_HIDE_DRAFT_API */ 292 UMEASURE_PREFIX_INTERNAL_MIN_SI = UMEASURE_PREFIX_YOCTO, 293 #endif /* U_HIDE_DRAFT_API */ 294 295 #endif // U_HIDE_INTERNAL_API 296 297 // Cannot conditionalize the following with #ifndef U_HIDE_INTERNAL_API, 298 // used in definitions of non-internal enum values 299 /** 300 * ICU use only. 301 * Sets the arbitrary offset of the base-1024 binary prefixes' enum values. 302 * @internal 303 */ 304 UMEASURE_PREFIX_INTERNAL_ONE_BIN = -60, 305 306 /** 307 * Binary prefix: kibi, 1024^1. 308 * 309 * @stable ICU 69 310 */ 311 UMEASURE_PREFIX_KIBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 1, 312 313 #ifndef U_HIDE_INTERNAL_API 314 /** 315 * ICU use only. 316 * Used to determine the set of base-1024 binary prefixes. 317 * @internal 318 */ 319 UMEASURE_PREFIX_INTERNAL_MIN_BIN = UMEASURE_PREFIX_KIBI, 320 #endif // U_HIDE_INTERNAL_API 321 322 /** 323 * Binary prefix: mebi, 1024^2. 324 * 325 * @stable ICU 69 326 */ 327 UMEASURE_PREFIX_MEBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 2, 328 329 /** 330 * Binary prefix: gibi, 1024^3. 331 * 332 * @stable ICU 69 333 */ 334 UMEASURE_PREFIX_GIBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 3, 335 336 /** 337 * Binary prefix: tebi, 1024^4. 338 * 339 * @stable ICU 69 340 */ 341 UMEASURE_PREFIX_TEBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 4, 342 343 /** 344 * Binary prefix: pebi, 1024^5. 345 * 346 * @stable ICU 69 347 */ 348 UMEASURE_PREFIX_PEBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 5, 349 350 /** 351 * Binary prefix: exbi, 1024^6. 352 * 353 * @stable ICU 69 354 */ 355 UMEASURE_PREFIX_EXBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 6, 356 357 /** 358 * Binary prefix: zebi, 1024^7. 359 * 360 * @stable ICU 69 361 */ 362 UMEASURE_PREFIX_ZEBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 7, 363 364 /** 365 * Binary prefix: yobi, 1024^8. 366 * 367 * @stable ICU 69 368 */ 369 UMEASURE_PREFIX_YOBI = UMEASURE_PREFIX_INTERNAL_ONE_BIN + 8, 370 371 #ifndef U_HIDE_INTERNAL_API 372 /** 373 * ICU use only. 374 * Used to determine the set of base-1024 binary prefixes. 375 * @internal 376 */ 377 UMEASURE_PREFIX_INTERNAL_MAX_BIN = UMEASURE_PREFIX_YOBI, 378 #endif // U_HIDE_INTERNAL_API 379 } UMeasurePrefix; 380 381 /** 382 * Returns the base of the factor associated with the given unit prefix: the 383 * base is 10 for SI prefixes (kilo, micro) and 1024 for binary prefixes (kibi, 384 * mebi). 385 * 386 * @stable ICU 69 387 */ 388 U_CAPI int32_t U_EXPORT2 umeas_getPrefixBase(UMeasurePrefix unitPrefix); 389 390 /** 391 * Returns the exponent of the factor associated with the given unit prefix, for 392 * example 3 for kilo, -6 for micro, 1 for kibi, 2 for mebi, 3 for gibi. 393 * 394 * @stable ICU 69 395 */ 396 U_CAPI int32_t U_EXPORT2 umeas_getPrefixPower(UMeasurePrefix unitPrefix); 397 398 /** 399 * A unit such as length, mass, volume, currency, etc. A unit is 400 * coupled with a numeric amount to produce a Measure. 401 * 402 * @author Alan Liu 403 * @stable ICU 3.0 404 */ 405 class U_I18N_API MeasureUnit: public UObject { 406 public: 407 408 /** 409 * Default constructor. 410 * Populates the instance with the base dimensionless unit, which means that there will be 411 * no unit on the formatted number. 412 * @stable ICU 3.0 413 */ 414 MeasureUnit(); 415 416 /** 417 * Copy constructor. 418 * @stable ICU 3.0 419 */ 420 MeasureUnit(const MeasureUnit &other); 421 422 /** 423 * Move constructor. 424 * @stable ICU 67 425 */ 426 MeasureUnit(MeasureUnit &&other) noexcept; 427 428 /** 429 * Constructs a MeasureUnit from a CLDR Core Unit Identifier, as defined in UTS 35. 430 * This method supports core unit identifiers and mixed unit identifiers. 431 * It validates and canonicalizes the given identifier. 432 * 433 * 434 * Example usage: 435 * <pre> 436 * MeasureUnit example = MeasureUnit::forIdentifier("meter-per-second", status); 437 * </pre> 438 * 439 * @param identifier the CLDR Unit Identifier 440 * @param status Set error if the identifier is invalid. 441 * @return the corresponding MeasureUnit 442 * @stable ICU 67 443 */ 444 static MeasureUnit forIdentifier(StringPiece identifier, UErrorCode& status); 445 446 /** 447 * Copy assignment operator. 448 * @stable ICU 3.0 449 */ 450 MeasureUnit &operator=(const MeasureUnit &other); 451 452 /** 453 * Move assignment operator. 454 * @stable ICU 67 455 */ 456 MeasureUnit &operator=(MeasureUnit &&other) noexcept; 457 458 /** 459 * Returns a polymorphic clone of this object. The result will 460 * have the same class as returned by getDynamicClassID(). 461 * @stable ICU 3.0 462 */ 463 virtual MeasureUnit* clone() const; 464 465 /** 466 * Destructor 467 * @stable ICU 3.0 468 */ 469 virtual ~MeasureUnit(); 470 471 /** 472 * Equality operator. Return true if this object is equal 473 * to the given object. 474 * @stable ICU 3.0 475 */ 476 virtual bool operator==(const UObject& other) const; 477 478 /** 479 * Inequality operator. Return true if this object is not equal 480 * to the given object. 481 * @stable ICU 53 482 */ 483 bool operator!=(const UObject& other) const { 484 return !(*this == other); 485 } 486 487 /** 488 * Get the type. 489 * 490 * If the unit does not have a type, the empty string is returned. 491 * 492 * @stable ICU 53 493 */ 494 const char *getType() const; 495 496 /** 497 * Get the sub type. 498 * 499 * If the unit does not have a subtype, the empty string is returned. 500 * 501 * @stable ICU 53 502 */ 503 const char *getSubtype() const; 504 505 /** 506 * Get CLDR Unit Identifier for this MeasureUnit, as defined in UTS 35. 507 * 508 * @return The string form of this unit, owned by this MeasureUnit. 509 * @stable ICU 67 510 */ 511 const char* getIdentifier() const; 512 513 /** 514 * Compute the complexity of the unit. See UMeasureUnitComplexity for more information. 515 * 516 * @param status Set if an error occurs. 517 * @return The unit complexity. 518 * @stable ICU 67 519 */ 520 UMeasureUnitComplexity getComplexity(UErrorCode& status) const; 521 522 /** 523 * Creates a MeasureUnit which is this SINGLE unit augmented with the specified prefix. 524 * For example, UMEASURE_PREFIX_KILO for "kilo", or UMEASURE_PREFIX_KIBI for "kibi". 525 * 526 * There is sufficient locale data to format all standard prefixes. 527 * 528 * NOTE: Only works on SINGLE units. If this is a COMPOUND or MIXED unit, an error will 529 * occur. For more information, see UMeasureUnitComplexity. 530 * 531 * @param prefix The prefix, from UMeasurePrefix. 532 * @param status Set if this is not a SINGLE unit or if another error occurs. 533 * @return A new SINGLE unit. 534 * @stable ICU 69 535 */ 536 MeasureUnit withPrefix(UMeasurePrefix prefix, UErrorCode& status) const; 537 538 /** 539 * Returns the current SI or binary prefix of this SINGLE unit. For example, 540 * if the unit has the prefix "kilo", then UMEASURE_PREFIX_KILO is 541 * returned. 542 * 543 * NOTE: Only works on SINGLE units. If this is a COMPOUND or MIXED unit, an error will 544 * occur. For more information, see UMeasureUnitComplexity. 545 * 546 * @param status Set if this is not a SINGLE unit or if another error occurs. 547 * @return The prefix of this SINGLE unit, from UMeasurePrefix. 548 * @see umeas_getPrefixBase 549 * @see umeas_getPrefixPower 550 * @stable ICU 69 551 */ 552 UMeasurePrefix getPrefix(UErrorCode& status) const; 553 554 #ifndef U_HIDE_DRAFT_API 555 556 /** 557 * Creates a new MeasureUnit with a specified constant denominator. 558 * 559 * This method is applicable only to COMPOUND and SINGLE units. If invoked on a 560 * MIXED unit, an error will be set in the status. 561 * 562 * NOTE: If the constant denominator is set to 0, it means that you are removing 563 * the constant denominator. 564 * 565 * @param denominator The constant denominator to set. 566 * @param status Set if this is not a COMPOUND or SINGLE unit or if another error occurs. 567 * @return A new MeasureUnit with the specified constant denominator. 568 * @draft ICU 77 569 */ 570 MeasureUnit withConstantDenominator(uint64_t denominator, UErrorCode &status) const; 571 572 /** 573 * Retrieves the constant denominator for this COMPOUND unit. 574 * 575 * Examples: 576 * - For the unit "liter-per-1000-kiloliter", the constant denominator is 1000. 577 * - For the unit "liter-per-kilometer", the constant denominator is zero. 578 * 579 * This method is applicable only to COMPOUND and SINGLE units. If invoked on 580 * a MIXED unit, an error will be set in the status. 581 * 582 * NOTE: If no constant denominator exists, the method returns 0. 583 * 584 * @param status Set if this is not a COMPOUND or SINGLE unit or if another error occurs. 585 * @return The value of the constant denominator. 586 * @draft ICU 77 587 */ 588 uint64_t getConstantDenominator(UErrorCode &status) const; 589 590 #endif /* U_HIDE_DRAFT_API */ 591 592 /** 593 * Creates a MeasureUnit which is this SINGLE unit augmented with the specified dimensionality 594 * (power). For example, if dimensionality is 2, the unit will be squared. 595 * 596 * NOTE: Only works on SINGLE units. If this is a COMPOUND or MIXED unit, an error will 597 * occur. For more information, see UMeasureUnitComplexity. 598 * 599 * For the base dimensionless unit, withDimensionality does nothing. 600 * 601 * @param dimensionality The dimensionality (power). 602 * @param status Set if this is not a SINGLE unit or if another error occurs. 603 * @return A new SINGLE unit. 604 * @stable ICU 67 605 */ 606 MeasureUnit withDimensionality(int32_t dimensionality, UErrorCode& status) const; 607 608 /** 609 * Gets the dimensionality (power) of this MeasureUnit. For example, if the unit is square, 610 * then 2 is returned. 611 * 612 * NOTE: Only works on SINGLE units. If this is a COMPOUND or MIXED unit, an error will 613 * occur. For more information, see UMeasureUnitComplexity. 614 * 615 * For the base dimensionless unit, getDimensionality returns 0. 616 * 617 * @param status Set if this is not a SINGLE unit or if another error occurs. 618 * @return The dimensionality (power) of this simple unit. 619 * @stable ICU 67 620 */ 621 int32_t getDimensionality(UErrorCode& status) const; 622 623 /** 624 * Gets the reciprocal of this MeasureUnit, with the numerator and denominator flipped. 625 * 626 * For example, if the receiver is "meter-per-second", the unit "second-per-meter" is returned. 627 * 628 * NOTE: Only works on SINGLE and COMPOUND units. If this is a MIXED unit, an error will 629 * occur. For more information, see UMeasureUnitComplexity. 630 * 631 * NOTE: An Error will be returned for units that have a constant denominator. 632 * 633 * @param status Set if this is a MIXED unit, has a constant denominator or if another error occurs. 634 * @return The reciprocal of the target unit. 635 * @stable ICU 67 636 */ 637 MeasureUnit reciprocal(UErrorCode& status) const; 638 639 /** 640 * Gets the product of this unit with another unit. This is a way to build units from 641 * constituent parts. 642 * 643 * The numerator and denominator are preserved through this operation. 644 * 645 * For example, if the receiver is "kilowatt" and the argument is "hour-per-day", then the 646 * unit "kilowatt-hour-per-day" is returned. 647 * 648 * NOTE: Only works on SINGLE and COMPOUND units. If either unit (receiver and argument) is a 649 * MIXED unit, an error will occur. For more information, see UMeasureUnitComplexity. 650 * 651 * @param other The MeasureUnit to multiply with the target. 652 * @param status Set if this or other is a MIXED unit or if another error occurs. 653 * @return The product of the target unit with the provided unit. 654 * @stable ICU 67 655 */ 656 MeasureUnit product(const MeasureUnit& other, UErrorCode& status) const; 657 658 /** 659 * Gets the list of SINGLE units contained within a MIXED or COMPOUND unit. 660 * 661 * Examples: 662 * - Given "meter-kilogram-per-second", three units will be returned: "meter", 663 * "kilogram", and "per-second". 664 * - Given "hour+minute+second", three units will be returned: "hour", "minute", 665 * and "second". 666 * 667 * If this is a SINGLE unit, an array of length 1 will be returned. 668 * 669 * NOTE: For units with a constant denominator, the returned single units will 670 * not include the constant denominator. To obtain the constant denominator, 671 * retrieve it from the original unit. 672 * 673 * @param status Set if an error occurs. 674 * @return A pair with the list of units as a LocalArray and the number of units in the list. 675 * @stable ICU 68 676 */ 677 inline std::pair<LocalArray<MeasureUnit>, int32_t> splitToSingleUnits(UErrorCode& status) const; 678 679 /** 680 * getAvailable gets all of the available units. 681 * If there are too many units to fit into destCapacity then the 682 * error code is set to U_BUFFER_OVERFLOW_ERROR. 683 * 684 * @param destArray destination buffer. 685 * @param destCapacity number of MeasureUnit instances available at dest. 686 * @param errorCode ICU error code. 687 * @return number of available units. 688 * @stable ICU 53 689 */ 690 static int32_t getAvailable( 691 MeasureUnit *destArray, 692 int32_t destCapacity, 693 UErrorCode &errorCode); 694 695 /** 696 * getAvailable gets all of the available units for a specific type. 697 * If there are too many units to fit into destCapacity then the 698 * error code is set to U_BUFFER_OVERFLOW_ERROR. 699 * 700 * @param type the type 701 * @param destArray destination buffer. 702 * @param destCapacity number of MeasureUnit instances available at dest. 703 * @param errorCode ICU error code. 704 * @return number of available units for type. 705 * @stable ICU 53 706 */ 707 static int32_t getAvailable( 708 const char *type, 709 MeasureUnit *destArray, 710 int32_t destCapacity, 711 UErrorCode &errorCode); 712 713 /** 714 * getAvailableTypes gets all of the available types. Caller owns the 715 * returned StringEnumeration and must delete it when finished using it. 716 * 717 * @param errorCode ICU error code. 718 * @return the types. 719 * @stable ICU 53 720 */ 721 static StringEnumeration* getAvailableTypes(UErrorCode &errorCode); 722 723 /** 724 * Return the class ID for this class. This is useful only for comparing to 725 * a return value from getDynamicClassID(). For example: 726 * <pre> 727 * . Base* polymorphic_pointer = createPolymorphicObject(); 728 * . if (polymorphic_pointer->getDynamicClassID() == 729 * . Derived::getStaticClassID()) ... 730 * </pre> 731 * @return The class ID for all objects of this class. 732 * @stable ICU 53 733 */ 734 static UClassID U_EXPORT2 getStaticClassID(); 735 736 /** 737 * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This 738 * method is to implement a simple version of RTTI, since not all C++ 739 * compilers support genuine RTTI. Polymorphic operator==() and clone() 740 * methods call this method. 741 * 742 * @return The class ID for this object. All objects of a 743 * given class have the same class ID. Objects of 744 * other classes have different class IDs. 745 * @stable ICU 53 746 */ 747 virtual UClassID getDynamicClassID() const override; 748 749 #ifndef U_HIDE_INTERNAL_API 750 /** 751 * ICU use only. 752 * Returns associated array index for this measure unit. 753 * @internal 754 */ 755 int32_t getOffset() const; 756 #endif /* U_HIDE_INTERNAL_API */ 757 758 // All code between the "Start generated createXXX methods" comment and 759 // the "End generated createXXX methods" comment is auto generated code 760 // and must not be edited manually. For instructions on how to correctly 761 // update this code, refer to: 762 // docs/processes/release/tasks/updating-measure-unit.md 763 // 764 // Start generated createXXX methods 765 766 /** 767 * Returns by pointer, unit of acceleration: g-force. 768 * Caller owns returned value and must free it. 769 * Also see {@link #getGForce()}. 770 * @param status ICU error code. 771 * @stable ICU 53 772 */ 773 static MeasureUnit *createGForce(UErrorCode &status); 774 775 /** 776 * Returns by value, unit of acceleration: g-force. 777 * Also see {@link #createGForce()}. 778 * @stable ICU 64 779 */ 780 static MeasureUnit getGForce(); 781 782 /** 783 * Returns by pointer, unit of acceleration: meter-per-square-second. 784 * Caller owns returned value and must free it. 785 * Also see {@link #getMeterPerSecondSquared()}. 786 * @param status ICU error code. 787 * @stable ICU 54 788 */ 789 static MeasureUnit *createMeterPerSecondSquared(UErrorCode &status); 790 791 /** 792 * Returns by value, unit of acceleration: meter-per-square-second. 793 * Also see {@link #createMeterPerSecondSquared()}. 794 * @stable ICU 64 795 */ 796 static MeasureUnit getMeterPerSecondSquared(); 797 798 /** 799 * Returns by pointer, unit of angle: arc-minute. 800 * Caller owns returned value and must free it. 801 * Also see {@link #getArcMinute()}. 802 * @param status ICU error code. 803 * @stable ICU 53 804 */ 805 static MeasureUnit *createArcMinute(UErrorCode &status); 806 807 /** 808 * Returns by value, unit of angle: arc-minute. 809 * Also see {@link #createArcMinute()}. 810 * @stable ICU 64 811 */ 812 static MeasureUnit getArcMinute(); 813 814 /** 815 * Returns by pointer, unit of angle: arc-second. 816 * Caller owns returned value and must free it. 817 * Also see {@link #getArcSecond()}. 818 * @param status ICU error code. 819 * @stable ICU 53 820 */ 821 static MeasureUnit *createArcSecond(UErrorCode &status); 822 823 /** 824 * Returns by value, unit of angle: arc-second. 825 * Also see {@link #createArcSecond()}. 826 * @stable ICU 64 827 */ 828 static MeasureUnit getArcSecond(); 829 830 /** 831 * Returns by pointer, unit of angle: degree. 832 * Caller owns returned value and must free it. 833 * Also see {@link #getDegree()}. 834 * @param status ICU error code. 835 * @stable ICU 53 836 */ 837 static MeasureUnit *createDegree(UErrorCode &status); 838 839 /** 840 * Returns by value, unit of angle: degree. 841 * Also see {@link #createDegree()}. 842 * @stable ICU 64 843 */ 844 static MeasureUnit getDegree(); 845 846 /** 847 * Returns by pointer, unit of angle: radian. 848 * Caller owns returned value and must free it. 849 * Also see {@link #getRadian()}. 850 * @param status ICU error code. 851 * @stable ICU 54 852 */ 853 static MeasureUnit *createRadian(UErrorCode &status); 854 855 /** 856 * Returns by value, unit of angle: radian. 857 * Also see {@link #createRadian()}. 858 * @stable ICU 64 859 */ 860 static MeasureUnit getRadian(); 861 862 /** 863 * Returns by pointer, unit of angle: revolution. 864 * Caller owns returned value and must free it. 865 * Also see {@link #getRevolutionAngle()}. 866 * @param status ICU error code. 867 * @stable ICU 56 868 */ 869 static MeasureUnit *createRevolutionAngle(UErrorCode &status); 870 871 /** 872 * Returns by value, unit of angle: revolution. 873 * Also see {@link #createRevolutionAngle()}. 874 * @stable ICU 64 875 */ 876 static MeasureUnit getRevolutionAngle(); 877 878 #ifndef U_HIDE_DRAFT_API 879 /** 880 * Returns by pointer, unit of angle: steradian. 881 * Caller owns returned value and must free it. 882 * Also see {@link #getSteradian()}. 883 * @param status ICU error code. 884 * @draft ICU 78 885 */ 886 static MeasureUnit *createSteradian(UErrorCode &status); 887 888 /** 889 * Returns by value, unit of angle: steradian. 890 * Also see {@link #createSteradian()}. 891 * @draft ICU 78 892 */ 893 static MeasureUnit getSteradian(); 894 #endif /* U_HIDE_DRAFT_API */ 895 896 /** 897 * Returns by pointer, unit of area: acre. 898 * Caller owns returned value and must free it. 899 * Also see {@link #getAcre()}. 900 * @param status ICU error code. 901 * @stable ICU 53 902 */ 903 static MeasureUnit *createAcre(UErrorCode &status); 904 905 /** 906 * Returns by value, unit of area: acre. 907 * Also see {@link #createAcre()}. 908 * @stable ICU 64 909 */ 910 static MeasureUnit getAcre(); 911 912 #ifndef U_HIDE_DRAFT_API 913 /** 914 * Returns by pointer, unit of area: bu-jp. 915 * Caller owns returned value and must free it. 916 * Also see {@link #getBuJp()}. 917 * @param status ICU error code. 918 * @draft ICU 78 919 */ 920 static MeasureUnit *createBuJp(UErrorCode &status); 921 922 /** 923 * Returns by value, unit of area: bu-jp. 924 * Also see {@link #createBuJp()}. 925 * @draft ICU 78 926 */ 927 static MeasureUnit getBuJp(); 928 #endif /* U_HIDE_DRAFT_API */ 929 930 #ifndef U_HIDE_DRAFT_API 931 /** 932 * Returns by pointer, unit of area: cho. 933 * Caller owns returned value and must free it. 934 * Also see {@link #getCho()}. 935 * @param status ICU error code. 936 * @draft ICU 78 937 */ 938 static MeasureUnit *createCho(UErrorCode &status); 939 940 /** 941 * Returns by value, unit of area: cho. 942 * Also see {@link #createCho()}. 943 * @draft ICU 78 944 */ 945 static MeasureUnit getCho(); 946 #endif /* U_HIDE_DRAFT_API */ 947 948 /** 949 * Returns by pointer, unit of area: dunam. 950 * Caller owns returned value and must free it. 951 * Also see {@link #getDunam()}. 952 * @param status ICU error code. 953 * @stable ICU 64 954 */ 955 static MeasureUnit *createDunam(UErrorCode &status); 956 957 /** 958 * Returns by value, unit of area: dunam. 959 * Also see {@link #createDunam()}. 960 * @stable ICU 64 961 */ 962 static MeasureUnit getDunam(); 963 964 /** 965 * Returns by pointer, unit of area: hectare. 966 * Caller owns returned value and must free it. 967 * Also see {@link #getHectare()}. 968 * @param status ICU error code. 969 * @stable ICU 53 970 */ 971 static MeasureUnit *createHectare(UErrorCode &status); 972 973 /** 974 * Returns by value, unit of area: hectare. 975 * Also see {@link #createHectare()}. 976 * @stable ICU 64 977 */ 978 static MeasureUnit getHectare(); 979 980 #ifndef U_HIDE_DRAFT_API 981 /** 982 * Returns by pointer, unit of area: se-jp. 983 * Caller owns returned value and must free it. 984 * Also see {@link #getSeJp()}. 985 * @param status ICU error code. 986 * @draft ICU 78 987 */ 988 static MeasureUnit *createSeJp(UErrorCode &status); 989 990 /** 991 * Returns by value, unit of area: se-jp. 992 * Also see {@link #createSeJp()}. 993 * @draft ICU 78 994 */ 995 static MeasureUnit getSeJp(); 996 #endif /* U_HIDE_DRAFT_API */ 997 998 /** 999 * Returns by pointer, unit of area: square-centimeter. 1000 * Caller owns returned value and must free it. 1001 * Also see {@link #getSquareCentimeter()}. 1002 * @param status ICU error code. 1003 * @stable ICU 54 1004 */ 1005 static MeasureUnit *createSquareCentimeter(UErrorCode &status); 1006 1007 /** 1008 * Returns by value, unit of area: square-centimeter. 1009 * Also see {@link #createSquareCentimeter()}. 1010 * @stable ICU 64 1011 */ 1012 static MeasureUnit getSquareCentimeter(); 1013 1014 /** 1015 * Returns by pointer, unit of area: square-foot. 1016 * Caller owns returned value and must free it. 1017 * Also see {@link #getSquareFoot()}. 1018 * @param status ICU error code. 1019 * @stable ICU 53 1020 */ 1021 static MeasureUnit *createSquareFoot(UErrorCode &status); 1022 1023 /** 1024 * Returns by value, unit of area: square-foot. 1025 * Also see {@link #createSquareFoot()}. 1026 * @stable ICU 64 1027 */ 1028 static MeasureUnit getSquareFoot(); 1029 1030 /** 1031 * Returns by pointer, unit of area: square-inch. 1032 * Caller owns returned value and must free it. 1033 * Also see {@link #getSquareInch()}. 1034 * @param status ICU error code. 1035 * @stable ICU 54 1036 */ 1037 static MeasureUnit *createSquareInch(UErrorCode &status); 1038 1039 /** 1040 * Returns by value, unit of area: square-inch. 1041 * Also see {@link #createSquareInch()}. 1042 * @stable ICU 64 1043 */ 1044 static MeasureUnit getSquareInch(); 1045 1046 /** 1047 * Returns by pointer, unit of area: square-kilometer. 1048 * Caller owns returned value and must free it. 1049 * Also see {@link #getSquareKilometer()}. 1050 * @param status ICU error code. 1051 * @stable ICU 53 1052 */ 1053 static MeasureUnit *createSquareKilometer(UErrorCode &status); 1054 1055 /** 1056 * Returns by value, unit of area: square-kilometer. 1057 * Also see {@link #createSquareKilometer()}. 1058 * @stable ICU 64 1059 */ 1060 static MeasureUnit getSquareKilometer(); 1061 1062 /** 1063 * Returns by pointer, unit of area: square-meter. 1064 * Caller owns returned value and must free it. 1065 * Also see {@link #getSquareMeter()}. 1066 * @param status ICU error code. 1067 * @stable ICU 53 1068 */ 1069 static MeasureUnit *createSquareMeter(UErrorCode &status); 1070 1071 /** 1072 * Returns by value, unit of area: square-meter. 1073 * Also see {@link #createSquareMeter()}. 1074 * @stable ICU 64 1075 */ 1076 static MeasureUnit getSquareMeter(); 1077 1078 /** 1079 * Returns by pointer, unit of area: square-mile. 1080 * Caller owns returned value and must free it. 1081 * Also see {@link #getSquareMile()}. 1082 * @param status ICU error code. 1083 * @stable ICU 53 1084 */ 1085 static MeasureUnit *createSquareMile(UErrorCode &status); 1086 1087 /** 1088 * Returns by value, unit of area: square-mile. 1089 * Also see {@link #createSquareMile()}. 1090 * @stable ICU 64 1091 */ 1092 static MeasureUnit getSquareMile(); 1093 1094 /** 1095 * Returns by pointer, unit of area: square-yard. 1096 * Caller owns returned value and must free it. 1097 * Also see {@link #getSquareYard()}. 1098 * @param status ICU error code. 1099 * @stable ICU 54 1100 */ 1101 static MeasureUnit *createSquareYard(UErrorCode &status); 1102 1103 /** 1104 * Returns by value, unit of area: square-yard. 1105 * Also see {@link #createSquareYard()}. 1106 * @stable ICU 64 1107 */ 1108 static MeasureUnit getSquareYard(); 1109 1110 /** 1111 * Returns by pointer, unit of concentr: item. 1112 * Caller owns returned value and must free it. 1113 * Also see {@link #getItem()}. 1114 * @param status ICU error code. 1115 * @stable ICU 70 1116 */ 1117 static MeasureUnit *createItem(UErrorCode &status); 1118 1119 /** 1120 * Returns by value, unit of concentr: item. 1121 * Also see {@link #createItem()}. 1122 * @stable ICU 70 1123 */ 1124 static MeasureUnit getItem(); 1125 1126 /** 1127 * Returns by pointer, unit of concentr: karat. 1128 * Caller owns returned value and must free it. 1129 * Also see {@link #getKarat()}. 1130 * @param status ICU error code. 1131 * @stable ICU 54 1132 */ 1133 static MeasureUnit *createKarat(UErrorCode &status); 1134 1135 /** 1136 * Returns by value, unit of concentr: karat. 1137 * Also see {@link #createKarat()}. 1138 * @stable ICU 64 1139 */ 1140 static MeasureUnit getKarat(); 1141 1142 #ifndef U_HIDE_DRAFT_API 1143 /** 1144 * Returns by pointer, unit of concentr: katal. 1145 * Caller owns returned value and must free it. 1146 * Also see {@link #getKatal()}. 1147 * @param status ICU error code. 1148 * @draft ICU 78 1149 */ 1150 static MeasureUnit *createKatal(UErrorCode &status); 1151 1152 /** 1153 * Returns by value, unit of concentr: katal. 1154 * Also see {@link #createKatal()}. 1155 * @draft ICU 78 1156 */ 1157 static MeasureUnit getKatal(); 1158 #endif /* U_HIDE_DRAFT_API */ 1159 1160 /** 1161 * Returns by pointer, unit of concentr: milligram-ofglucose-per-deciliter. 1162 * Caller owns returned value and must free it. 1163 * Also see {@link #getMilligramOfglucosePerDeciliter()}. 1164 * @param status ICU error code. 1165 * @stable ICU 69 1166 */ 1167 static MeasureUnit *createMilligramOfglucosePerDeciliter(UErrorCode &status); 1168 1169 /** 1170 * Returns by value, unit of concentr: milligram-ofglucose-per-deciliter. 1171 * Also see {@link #createMilligramOfglucosePerDeciliter()}. 1172 * @stable ICU 69 1173 */ 1174 static MeasureUnit getMilligramOfglucosePerDeciliter(); 1175 1176 #ifndef U_HIDE_DEPRECATED_API 1177 /** 1178 * Returns by pointer, unit of concentr: milligram-per-deciliter. 1179 * (renamed to milligram-ofglucose-per-deciliter in CLDR 39 / ICU 69). 1180 * Caller owns returned value and must free it. 1181 * Also see {@link #createMilligramOfglucosePerDeciliter()}. 1182 * Also see {@link #getMilligramPerDeciliter()}. 1183 * @param status ICU error code. 1184 * @deprecated ICU 78 use createMilligramOfglucosePerDeciliter(UErrorCode &status) 1185 */ 1186 static MeasureUnit *createMilligramPerDeciliter(UErrorCode &status); 1187 1188 /** 1189 * Returns by value, unit of concentr: milligram-per-deciliter. 1190 * (renamed to milligram-ofglucose-per-deciliter in CLDR 39 / ICU 69). 1191 * Also see {@link #getMilligramOfglucosePerDeciliter()}. 1192 * Also see {@link #createMilligramPerDeciliter()}. 1193 * @deprecated ICU 78 use getMilligramOfglucosePerDeciliter() 1194 */ 1195 static MeasureUnit getMilligramPerDeciliter(); 1196 #endif /* U_HIDE_DEPRECATED_API */ 1197 1198 /** 1199 * Returns by pointer, unit of concentr: millimole-per-liter. 1200 * Caller owns returned value and must free it. 1201 * Also see {@link #getMillimolePerLiter()}. 1202 * @param status ICU error code. 1203 * @stable ICU 57 1204 */ 1205 static MeasureUnit *createMillimolePerLiter(UErrorCode &status); 1206 1207 /** 1208 * Returns by value, unit of concentr: millimole-per-liter. 1209 * Also see {@link #createMillimolePerLiter()}. 1210 * @stable ICU 64 1211 */ 1212 static MeasureUnit getMillimolePerLiter(); 1213 1214 /** 1215 * Returns by pointer, unit of concentr: mole. 1216 * Caller owns returned value and must free it. 1217 * Also see {@link #getMole()}. 1218 * @param status ICU error code. 1219 * @stable ICU 64 1220 */ 1221 static MeasureUnit *createMole(UErrorCode &status); 1222 1223 /** 1224 * Returns by value, unit of concentr: mole. 1225 * Also see {@link #createMole()}. 1226 * @stable ICU 64 1227 */ 1228 static MeasureUnit getMole(); 1229 1230 #ifndef U_HIDE_DRAFT_API 1231 /** 1232 * Returns by pointer, unit of concentr: ofglucose. 1233 * Caller owns returned value and must free it. 1234 * Also see {@link #getOfglucose()}. 1235 * @param status ICU error code. 1236 * @draft ICU 78 1237 */ 1238 static MeasureUnit *createOfglucose(UErrorCode &status); 1239 1240 /** 1241 * Returns by value, unit of concentr: ofglucose. 1242 * Also see {@link #createOfglucose()}. 1243 * @draft ICU 78 1244 */ 1245 static MeasureUnit getOfglucose(); 1246 #endif /* U_HIDE_DRAFT_API */ 1247 1248 #ifndef U_HIDE_DRAFT_API 1249 /** 1250 * Returns by pointer, unit of concentr: part. 1251 * Caller owns returned value and must free it. 1252 * Also see {@link #getPart()}. 1253 * @param status ICU error code. 1254 * @draft ICU 78 1255 */ 1256 static MeasureUnit *createPart(UErrorCode &status); 1257 1258 /** 1259 * Returns by value, unit of concentr: part. 1260 * Also see {@link #createPart()}. 1261 * @draft ICU 78 1262 */ 1263 static MeasureUnit getPart(); 1264 #endif /* U_HIDE_DRAFT_API */ 1265 1266 #ifndef U_HIDE_DRAFT_API 1267 /** 1268 * Returns by pointer, unit of concentr: part-per-1e6. 1269 * Caller owns returned value and must free it. 1270 * Also see {@link #getPartPer1E6()}. 1271 * @param status ICU error code. 1272 * @draft ICU 78 1273 */ 1274 static MeasureUnit *createPartPer1E6(UErrorCode &status); 1275 1276 /** 1277 * Returns by value, unit of concentr: part-per-1e6. 1278 * Also see {@link #createPartPer1E6()}. 1279 * @draft ICU 78 1280 */ 1281 static MeasureUnit getPartPer1E6(); 1282 #endif /* U_HIDE_DRAFT_API */ 1283 1284 /** 1285 * Returns by pointer, unit of concentr: part-per-million. 1286 * (renamed to part-per-1e6 in CLDR 48 / ICU 78). 1287 * Caller owns returned value and must free it. 1288 * Also see {@link #createPartPer1E6()}. 1289 * Also see {@link #getPartPerMillion()}. 1290 * @param status ICU error code. 1291 * @stable ICU 57 1292 */ 1293 static MeasureUnit *createPartPerMillion(UErrorCode &status); 1294 1295 /** 1296 * Returns by value, unit of concentr: part-per-million. 1297 * (renamed to part-per-1e6 in CLDR 48 / ICU 78). 1298 * Also see {@link #getPartPer1E6()}. 1299 * Also see {@link #createPartPerMillion()}. 1300 * @stable ICU 64 1301 */ 1302 static MeasureUnit getPartPerMillion(); 1303 1304 #ifndef U_HIDE_DRAFT_API 1305 /** 1306 * Returns by pointer, unit of concentr: part-per-1e9. 1307 * Caller owns returned value and must free it. 1308 * Also see {@link #getPartPer1E9()}. 1309 * @param status ICU error code. 1310 * @draft ICU 78 1311 */ 1312 static MeasureUnit *createPartPer1E9(UErrorCode &status); 1313 1314 /** 1315 * Returns by value, unit of concentr: part-per-1e9. 1316 * Also see {@link #createPartPer1E9()}. 1317 * @draft ICU 78 1318 */ 1319 static MeasureUnit getPartPer1E9(); 1320 #endif /* U_HIDE_DRAFT_API */ 1321 1322 /** 1323 * Returns by pointer, unit of concentr: percent. 1324 * Caller owns returned value and must free it. 1325 * Also see {@link #getPercent()}. 1326 * @param status ICU error code. 1327 * @stable ICU 63 1328 */ 1329 static MeasureUnit *createPercent(UErrorCode &status); 1330 1331 /** 1332 * Returns by value, unit of concentr: percent. 1333 * Also see {@link #createPercent()}. 1334 * @stable ICU 64 1335 */ 1336 static MeasureUnit getPercent(); 1337 1338 /** 1339 * Returns by pointer, unit of concentr: permille. 1340 * Caller owns returned value and must free it. 1341 * Also see {@link #getPermille()}. 1342 * @param status ICU error code. 1343 * @stable ICU 63 1344 */ 1345 static MeasureUnit *createPermille(UErrorCode &status); 1346 1347 /** 1348 * Returns by value, unit of concentr: permille. 1349 * Also see {@link #createPermille()}. 1350 * @stable ICU 64 1351 */ 1352 static MeasureUnit getPermille(); 1353 1354 /** 1355 * Returns by pointer, unit of concentr: permyriad. 1356 * Caller owns returned value and must free it. 1357 * Also see {@link #getPermyriad()}. 1358 * @param status ICU error code. 1359 * @stable ICU 64 1360 */ 1361 static MeasureUnit *createPermyriad(UErrorCode &status); 1362 1363 /** 1364 * Returns by value, unit of concentr: permyriad. 1365 * Also see {@link #createPermyriad()}. 1366 * @stable ICU 64 1367 */ 1368 static MeasureUnit getPermyriad(); 1369 1370 /** 1371 * Returns by pointer, unit of consumption: liter-per-100-kilometer. 1372 * Caller owns returned value and must free it. 1373 * Also see {@link #getLiterPer100Kilometers()}. 1374 * @param status ICU error code. 1375 * @stable ICU 56 1376 */ 1377 static MeasureUnit *createLiterPer100Kilometers(UErrorCode &status); 1378 1379 /** 1380 * Returns by value, unit of consumption: liter-per-100-kilometer. 1381 * Also see {@link #createLiterPer100Kilometers()}. 1382 * @stable ICU 64 1383 */ 1384 static MeasureUnit getLiterPer100Kilometers(); 1385 1386 /** 1387 * Returns by pointer, unit of consumption: liter-per-kilometer. 1388 * Caller owns returned value and must free it. 1389 * Also see {@link #getLiterPerKilometer()}. 1390 * @param status ICU error code. 1391 * @stable ICU 54 1392 */ 1393 static MeasureUnit *createLiterPerKilometer(UErrorCode &status); 1394 1395 /** 1396 * Returns by value, unit of consumption: liter-per-kilometer. 1397 * Also see {@link #createLiterPerKilometer()}. 1398 * @stable ICU 64 1399 */ 1400 static MeasureUnit getLiterPerKilometer(); 1401 1402 /** 1403 * Returns by pointer, unit of consumption: mile-per-gallon. 1404 * Caller owns returned value and must free it. 1405 * Also see {@link #getMilePerGallon()}. 1406 * @param status ICU error code. 1407 * @stable ICU 54 1408 */ 1409 static MeasureUnit *createMilePerGallon(UErrorCode &status); 1410 1411 /** 1412 * Returns by value, unit of consumption: mile-per-gallon. 1413 * Also see {@link #createMilePerGallon()}. 1414 * @stable ICU 64 1415 */ 1416 static MeasureUnit getMilePerGallon(); 1417 1418 /** 1419 * Returns by pointer, unit of consumption: mile-per-gallon-imperial. 1420 * Caller owns returned value and must free it. 1421 * Also see {@link #getMilePerGallonImperial()}. 1422 * @param status ICU error code. 1423 * @stable ICU 57 1424 */ 1425 static MeasureUnit *createMilePerGallonImperial(UErrorCode &status); 1426 1427 /** 1428 * Returns by value, unit of consumption: mile-per-gallon-imperial. 1429 * Also see {@link #createMilePerGallonImperial()}. 1430 * @stable ICU 64 1431 */ 1432 static MeasureUnit getMilePerGallonImperial(); 1433 1434 /** 1435 * Returns by pointer, unit of digital: bit. 1436 * Caller owns returned value and must free it. 1437 * Also see {@link #getBit()}. 1438 * @param status ICU error code. 1439 * @stable ICU 54 1440 */ 1441 static MeasureUnit *createBit(UErrorCode &status); 1442 1443 /** 1444 * Returns by value, unit of digital: bit. 1445 * Also see {@link #createBit()}. 1446 * @stable ICU 64 1447 */ 1448 static MeasureUnit getBit(); 1449 1450 /** 1451 * Returns by pointer, unit of digital: byte. 1452 * Caller owns returned value and must free it. 1453 * Also see {@link #getByte()}. 1454 * @param status ICU error code. 1455 * @stable ICU 54 1456 */ 1457 static MeasureUnit *createByte(UErrorCode &status); 1458 1459 /** 1460 * Returns by value, unit of digital: byte. 1461 * Also see {@link #createByte()}. 1462 * @stable ICU 64 1463 */ 1464 static MeasureUnit getByte(); 1465 1466 /** 1467 * Returns by pointer, unit of digital: gigabit. 1468 * Caller owns returned value and must free it. 1469 * Also see {@link #getGigabit()}. 1470 * @param status ICU error code. 1471 * @stable ICU 54 1472 */ 1473 static MeasureUnit *createGigabit(UErrorCode &status); 1474 1475 /** 1476 * Returns by value, unit of digital: gigabit. 1477 * Also see {@link #createGigabit()}. 1478 * @stable ICU 64 1479 */ 1480 static MeasureUnit getGigabit(); 1481 1482 /** 1483 * Returns by pointer, unit of digital: gigabyte. 1484 * Caller owns returned value and must free it. 1485 * Also see {@link #getGigabyte()}. 1486 * @param status ICU error code. 1487 * @stable ICU 54 1488 */ 1489 static MeasureUnit *createGigabyte(UErrorCode &status); 1490 1491 /** 1492 * Returns by value, unit of digital: gigabyte. 1493 * Also see {@link #createGigabyte()}. 1494 * @stable ICU 64 1495 */ 1496 static MeasureUnit getGigabyte(); 1497 1498 /** 1499 * Returns by pointer, unit of digital: kilobit. 1500 * Caller owns returned value and must free it. 1501 * Also see {@link #getKilobit()}. 1502 * @param status ICU error code. 1503 * @stable ICU 54 1504 */ 1505 static MeasureUnit *createKilobit(UErrorCode &status); 1506 1507 /** 1508 * Returns by value, unit of digital: kilobit. 1509 * Also see {@link #createKilobit()}. 1510 * @stable ICU 64 1511 */ 1512 static MeasureUnit getKilobit(); 1513 1514 /** 1515 * Returns by pointer, unit of digital: kilobyte. 1516 * Caller owns returned value and must free it. 1517 * Also see {@link #getKilobyte()}. 1518 * @param status ICU error code. 1519 * @stable ICU 54 1520 */ 1521 static MeasureUnit *createKilobyte(UErrorCode &status); 1522 1523 /** 1524 * Returns by value, unit of digital: kilobyte. 1525 * Also see {@link #createKilobyte()}. 1526 * @stable ICU 64 1527 */ 1528 static MeasureUnit getKilobyte(); 1529 1530 /** 1531 * Returns by pointer, unit of digital: megabit. 1532 * Caller owns returned value and must free it. 1533 * Also see {@link #getMegabit()}. 1534 * @param status ICU error code. 1535 * @stable ICU 54 1536 */ 1537 static MeasureUnit *createMegabit(UErrorCode &status); 1538 1539 /** 1540 * Returns by value, unit of digital: megabit. 1541 * Also see {@link #createMegabit()}. 1542 * @stable ICU 64 1543 */ 1544 static MeasureUnit getMegabit(); 1545 1546 /** 1547 * Returns by pointer, unit of digital: megabyte. 1548 * Caller owns returned value and must free it. 1549 * Also see {@link #getMegabyte()}. 1550 * @param status ICU error code. 1551 * @stable ICU 54 1552 */ 1553 static MeasureUnit *createMegabyte(UErrorCode &status); 1554 1555 /** 1556 * Returns by value, unit of digital: megabyte. 1557 * Also see {@link #createMegabyte()}. 1558 * @stable ICU 64 1559 */ 1560 static MeasureUnit getMegabyte(); 1561 1562 /** 1563 * Returns by pointer, unit of digital: petabyte. 1564 * Caller owns returned value and must free it. 1565 * Also see {@link #getPetabyte()}. 1566 * @param status ICU error code. 1567 * @stable ICU 63 1568 */ 1569 static MeasureUnit *createPetabyte(UErrorCode &status); 1570 1571 /** 1572 * Returns by value, unit of digital: petabyte. 1573 * Also see {@link #createPetabyte()}. 1574 * @stable ICU 64 1575 */ 1576 static MeasureUnit getPetabyte(); 1577 1578 /** 1579 * Returns by pointer, unit of digital: terabit. 1580 * Caller owns returned value and must free it. 1581 * Also see {@link #getTerabit()}. 1582 * @param status ICU error code. 1583 * @stable ICU 54 1584 */ 1585 static MeasureUnit *createTerabit(UErrorCode &status); 1586 1587 /** 1588 * Returns by value, unit of digital: terabit. 1589 * Also see {@link #createTerabit()}. 1590 * @stable ICU 64 1591 */ 1592 static MeasureUnit getTerabit(); 1593 1594 /** 1595 * Returns by pointer, unit of digital: terabyte. 1596 * Caller owns returned value and must free it. 1597 * Also see {@link #getTerabyte()}. 1598 * @param status ICU error code. 1599 * @stable ICU 54 1600 */ 1601 static MeasureUnit *createTerabyte(UErrorCode &status); 1602 1603 /** 1604 * Returns by value, unit of digital: terabyte. 1605 * Also see {@link #createTerabyte()}. 1606 * @stable ICU 64 1607 */ 1608 static MeasureUnit getTerabyte(); 1609 1610 /** 1611 * Returns by pointer, unit of duration: century. 1612 * Caller owns returned value and must free it. 1613 * Also see {@link #getCentury()}. 1614 * @param status ICU error code. 1615 * @stable ICU 56 1616 */ 1617 static MeasureUnit *createCentury(UErrorCode &status); 1618 1619 /** 1620 * Returns by value, unit of duration: century. 1621 * Also see {@link #createCentury()}. 1622 * @stable ICU 64 1623 */ 1624 static MeasureUnit getCentury(); 1625 1626 /** 1627 * Returns by pointer, unit of duration: day. 1628 * Caller owns returned value and must free it. 1629 * Also see {@link #getDay()}. 1630 * @param status ICU error code. 1631 * @stable ICU 53 1632 */ 1633 static MeasureUnit *createDay(UErrorCode &status); 1634 1635 /** 1636 * Returns by value, unit of duration: day. 1637 * Also see {@link #createDay()}. 1638 * @stable ICU 64 1639 */ 1640 static MeasureUnit getDay(); 1641 1642 /** 1643 * Returns by pointer, unit of duration: day-person. 1644 * Caller owns returned value and must free it. 1645 * Also see {@link #getDayPerson()}. 1646 * @param status ICU error code. 1647 * @stable ICU 64 1648 */ 1649 static MeasureUnit *createDayPerson(UErrorCode &status); 1650 1651 /** 1652 * Returns by value, unit of duration: day-person. 1653 * Also see {@link #createDayPerson()}. 1654 * @stable ICU 64 1655 */ 1656 static MeasureUnit getDayPerson(); 1657 1658 /** 1659 * Returns by pointer, unit of duration: decade. 1660 * Caller owns returned value and must free it. 1661 * Also see {@link #getDecade()}. 1662 * @param status ICU error code. 1663 * @stable ICU 65 1664 */ 1665 static MeasureUnit *createDecade(UErrorCode &status); 1666 1667 /** 1668 * Returns by value, unit of duration: decade. 1669 * Also see {@link #createDecade()}. 1670 * @stable ICU 65 1671 */ 1672 static MeasureUnit getDecade(); 1673 1674 #ifndef U_HIDE_DRAFT_API 1675 /** 1676 * Returns by pointer, unit of duration: fortnight. 1677 * Caller owns returned value and must free it. 1678 * Also see {@link #getFortnight()}. 1679 * @param status ICU error code. 1680 * @draft ICU 78 1681 */ 1682 static MeasureUnit *createFortnight(UErrorCode &status); 1683 1684 /** 1685 * Returns by value, unit of duration: fortnight. 1686 * Also see {@link #createFortnight()}. 1687 * @draft ICU 78 1688 */ 1689 static MeasureUnit getFortnight(); 1690 #endif /* U_HIDE_DRAFT_API */ 1691 1692 /** 1693 * Returns by pointer, unit of duration: hour. 1694 * Caller owns returned value and must free it. 1695 * Also see {@link #getHour()}. 1696 * @param status ICU error code. 1697 * @stable ICU 53 1698 */ 1699 static MeasureUnit *createHour(UErrorCode &status); 1700 1701 /** 1702 * Returns by value, unit of duration: hour. 1703 * Also see {@link #createHour()}. 1704 * @stable ICU 64 1705 */ 1706 static MeasureUnit getHour(); 1707 1708 /** 1709 * Returns by pointer, unit of duration: microsecond. 1710 * Caller owns returned value and must free it. 1711 * Also see {@link #getMicrosecond()}. 1712 * @param status ICU error code. 1713 * @stable ICU 54 1714 */ 1715 static MeasureUnit *createMicrosecond(UErrorCode &status); 1716 1717 /** 1718 * Returns by value, unit of duration: microsecond. 1719 * Also see {@link #createMicrosecond()}. 1720 * @stable ICU 64 1721 */ 1722 static MeasureUnit getMicrosecond(); 1723 1724 /** 1725 * Returns by pointer, unit of duration: millisecond. 1726 * Caller owns returned value and must free it. 1727 * Also see {@link #getMillisecond()}. 1728 * @param status ICU error code. 1729 * @stable ICU 53 1730 */ 1731 static MeasureUnit *createMillisecond(UErrorCode &status); 1732 1733 /** 1734 * Returns by value, unit of duration: millisecond. 1735 * Also see {@link #createMillisecond()}. 1736 * @stable ICU 64 1737 */ 1738 static MeasureUnit getMillisecond(); 1739 1740 /** 1741 * Returns by pointer, unit of duration: minute. 1742 * Caller owns returned value and must free it. 1743 * Also see {@link #getMinute()}. 1744 * @param status ICU error code. 1745 * @stable ICU 53 1746 */ 1747 static MeasureUnit *createMinute(UErrorCode &status); 1748 1749 /** 1750 * Returns by value, unit of duration: minute. 1751 * Also see {@link #createMinute()}. 1752 * @stable ICU 64 1753 */ 1754 static MeasureUnit getMinute(); 1755 1756 /** 1757 * Returns by pointer, unit of duration: month. 1758 * Caller owns returned value and must free it. 1759 * Also see {@link #getMonth()}. 1760 * @param status ICU error code. 1761 * @stable ICU 53 1762 */ 1763 static MeasureUnit *createMonth(UErrorCode &status); 1764 1765 /** 1766 * Returns by value, unit of duration: month. 1767 * Also see {@link #createMonth()}. 1768 * @stable ICU 64 1769 */ 1770 static MeasureUnit getMonth(); 1771 1772 /** 1773 * Returns by pointer, unit of duration: month-person. 1774 * Caller owns returned value and must free it. 1775 * Also see {@link #getMonthPerson()}. 1776 * @param status ICU error code. 1777 * @stable ICU 64 1778 */ 1779 static MeasureUnit *createMonthPerson(UErrorCode &status); 1780 1781 /** 1782 * Returns by value, unit of duration: month-person. 1783 * Also see {@link #createMonthPerson()}. 1784 * @stable ICU 64 1785 */ 1786 static MeasureUnit getMonthPerson(); 1787 1788 /** 1789 * Returns by pointer, unit of duration: nanosecond. 1790 * Caller owns returned value and must free it. 1791 * Also see {@link #getNanosecond()}. 1792 * @param status ICU error code. 1793 * @stable ICU 54 1794 */ 1795 static MeasureUnit *createNanosecond(UErrorCode &status); 1796 1797 /** 1798 * Returns by value, unit of duration: nanosecond. 1799 * Also see {@link #createNanosecond()}. 1800 * @stable ICU 64 1801 */ 1802 static MeasureUnit getNanosecond(); 1803 1804 /** 1805 * Returns by pointer, unit of duration: night. 1806 * Caller owns returned value and must free it. 1807 * Also see {@link #getNight()}. 1808 * @param status ICU error code. 1809 * @stable ICU 76 1810 */ 1811 static MeasureUnit *createNight(UErrorCode &status); 1812 1813 /** 1814 * Returns by value, unit of duration: night. 1815 * Also see {@link #createNight()}. 1816 * @stable ICU 76 1817 */ 1818 static MeasureUnit getNight(); 1819 1820 /** 1821 * Returns by pointer, unit of duration: quarter. 1822 * Caller owns returned value and must free it. 1823 * Also see {@link #getQuarter()}. 1824 * @param status ICU error code. 1825 * @stable ICU 72 1826 */ 1827 static MeasureUnit *createQuarter(UErrorCode &status); 1828 1829 /** 1830 * Returns by value, unit of duration: quarter. 1831 * Also see {@link #createQuarter()}. 1832 * @stable ICU 72 1833 */ 1834 static MeasureUnit getQuarter(); 1835 1836 /** 1837 * Returns by pointer, unit of duration: second. 1838 * Caller owns returned value and must free it. 1839 * Also see {@link #getSecond()}. 1840 * @param status ICU error code. 1841 * @stable ICU 53 1842 */ 1843 static MeasureUnit *createSecond(UErrorCode &status); 1844 1845 /** 1846 * Returns by value, unit of duration: second. 1847 * Also see {@link #createSecond()}. 1848 * @stable ICU 64 1849 */ 1850 static MeasureUnit getSecond(); 1851 1852 /** 1853 * Returns by pointer, unit of duration: week. 1854 * Caller owns returned value and must free it. 1855 * Also see {@link #getWeek()}. 1856 * @param status ICU error code. 1857 * @stable ICU 53 1858 */ 1859 static MeasureUnit *createWeek(UErrorCode &status); 1860 1861 /** 1862 * Returns by value, unit of duration: week. 1863 * Also see {@link #createWeek()}. 1864 * @stable ICU 64 1865 */ 1866 static MeasureUnit getWeek(); 1867 1868 /** 1869 * Returns by pointer, unit of duration: week-person. 1870 * Caller owns returned value and must free it. 1871 * Also see {@link #getWeekPerson()}. 1872 * @param status ICU error code. 1873 * @stable ICU 64 1874 */ 1875 static MeasureUnit *createWeekPerson(UErrorCode &status); 1876 1877 /** 1878 * Returns by value, unit of duration: week-person. 1879 * Also see {@link #createWeekPerson()}. 1880 * @stable ICU 64 1881 */ 1882 static MeasureUnit getWeekPerson(); 1883 1884 /** 1885 * Returns by pointer, unit of duration: year. 1886 * Caller owns returned value and must free it. 1887 * Also see {@link #getYear()}. 1888 * @param status ICU error code. 1889 * @stable ICU 53 1890 */ 1891 static MeasureUnit *createYear(UErrorCode &status); 1892 1893 /** 1894 * Returns by value, unit of duration: year. 1895 * Also see {@link #createYear()}. 1896 * @stable ICU 64 1897 */ 1898 static MeasureUnit getYear(); 1899 1900 /** 1901 * Returns by pointer, unit of duration: year-person. 1902 * Caller owns returned value and must free it. 1903 * Also see {@link #getYearPerson()}. 1904 * @param status ICU error code. 1905 * @stable ICU 64 1906 */ 1907 static MeasureUnit *createYearPerson(UErrorCode &status); 1908 1909 /** 1910 * Returns by value, unit of duration: year-person. 1911 * Also see {@link #createYearPerson()}. 1912 * @stable ICU 64 1913 */ 1914 static MeasureUnit getYearPerson(); 1915 1916 /** 1917 * Returns by pointer, unit of electric: ampere. 1918 * Caller owns returned value and must free it. 1919 * Also see {@link #getAmpere()}. 1920 * @param status ICU error code. 1921 * @stable ICU 54 1922 */ 1923 static MeasureUnit *createAmpere(UErrorCode &status); 1924 1925 /** 1926 * Returns by value, unit of electric: ampere. 1927 * Also see {@link #createAmpere()}. 1928 * @stable ICU 64 1929 */ 1930 static MeasureUnit getAmpere(); 1931 1932 #ifndef U_HIDE_DRAFT_API 1933 /** 1934 * Returns by pointer, unit of electric: coulomb. 1935 * Caller owns returned value and must free it. 1936 * Also see {@link #getCoulomb()}. 1937 * @param status ICU error code. 1938 * @draft ICU 78 1939 */ 1940 static MeasureUnit *createCoulomb(UErrorCode &status); 1941 1942 /** 1943 * Returns by value, unit of electric: coulomb. 1944 * Also see {@link #createCoulomb()}. 1945 * @draft ICU 78 1946 */ 1947 static MeasureUnit getCoulomb(); 1948 #endif /* U_HIDE_DRAFT_API */ 1949 1950 #ifndef U_HIDE_DRAFT_API 1951 /** 1952 * Returns by pointer, unit of electric: farad. 1953 * Caller owns returned value and must free it. 1954 * Also see {@link #getFarad()}. 1955 * @param status ICU error code. 1956 * @draft ICU 78 1957 */ 1958 static MeasureUnit *createFarad(UErrorCode &status); 1959 1960 /** 1961 * Returns by value, unit of electric: farad. 1962 * Also see {@link #createFarad()}. 1963 * @draft ICU 78 1964 */ 1965 static MeasureUnit getFarad(); 1966 #endif /* U_HIDE_DRAFT_API */ 1967 1968 #ifndef U_HIDE_DRAFT_API 1969 /** 1970 * Returns by pointer, unit of electric: henry. 1971 * Caller owns returned value and must free it. 1972 * Also see {@link #getHenry()}. 1973 * @param status ICU error code. 1974 * @draft ICU 78 1975 */ 1976 static MeasureUnit *createHenry(UErrorCode &status); 1977 1978 /** 1979 * Returns by value, unit of electric: henry. 1980 * Also see {@link #createHenry()}. 1981 * @draft ICU 78 1982 */ 1983 static MeasureUnit getHenry(); 1984 #endif /* U_HIDE_DRAFT_API */ 1985 1986 /** 1987 * Returns by pointer, unit of electric: milliampere. 1988 * Caller owns returned value and must free it. 1989 * Also see {@link #getMilliampere()}. 1990 * @param status ICU error code. 1991 * @stable ICU 54 1992 */ 1993 static MeasureUnit *createMilliampere(UErrorCode &status); 1994 1995 /** 1996 * Returns by value, unit of electric: milliampere. 1997 * Also see {@link #createMilliampere()}. 1998 * @stable ICU 64 1999 */ 2000 static MeasureUnit getMilliampere(); 2001 2002 /** 2003 * Returns by pointer, unit of electric: ohm. 2004 * Caller owns returned value and must free it. 2005 * Also see {@link #getOhm()}. 2006 * @param status ICU error code. 2007 * @stable ICU 54 2008 */ 2009 static MeasureUnit *createOhm(UErrorCode &status); 2010 2011 /** 2012 * Returns by value, unit of electric: ohm. 2013 * Also see {@link #createOhm()}. 2014 * @stable ICU 64 2015 */ 2016 static MeasureUnit getOhm(); 2017 2018 #ifndef U_HIDE_DRAFT_API 2019 /** 2020 * Returns by pointer, unit of electric: siemens. 2021 * Caller owns returned value and must free it. 2022 * Also see {@link #getSiemens()}. 2023 * @param status ICU error code. 2024 * @draft ICU 78 2025 */ 2026 static MeasureUnit *createSiemens(UErrorCode &status); 2027 2028 /** 2029 * Returns by value, unit of electric: siemens. 2030 * Also see {@link #createSiemens()}. 2031 * @draft ICU 78 2032 */ 2033 static MeasureUnit getSiemens(); 2034 #endif /* U_HIDE_DRAFT_API */ 2035 2036 /** 2037 * Returns by pointer, unit of electric: volt. 2038 * Caller owns returned value and must free it. 2039 * Also see {@link #getVolt()}. 2040 * @param status ICU error code. 2041 * @stable ICU 54 2042 */ 2043 static MeasureUnit *createVolt(UErrorCode &status); 2044 2045 /** 2046 * Returns by value, unit of electric: volt. 2047 * Also see {@link #createVolt()}. 2048 * @stable ICU 64 2049 */ 2050 static MeasureUnit getVolt(); 2051 2052 #ifndef U_HIDE_DRAFT_API 2053 /** 2054 * Returns by pointer, unit of energy: becquerel. 2055 * Caller owns returned value and must free it. 2056 * Also see {@link #getBecquerel()}. 2057 * @param status ICU error code. 2058 * @draft ICU 78 2059 */ 2060 static MeasureUnit *createBecquerel(UErrorCode &status); 2061 2062 /** 2063 * Returns by value, unit of energy: becquerel. 2064 * Also see {@link #createBecquerel()}. 2065 * @draft ICU 78 2066 */ 2067 static MeasureUnit getBecquerel(); 2068 #endif /* U_HIDE_DRAFT_API */ 2069 2070 /** 2071 * Returns by pointer, unit of energy: british-thermal-unit. 2072 * Caller owns returned value and must free it. 2073 * Also see {@link #getBritishThermalUnit()}. 2074 * @param status ICU error code. 2075 * @stable ICU 64 2076 */ 2077 static MeasureUnit *createBritishThermalUnit(UErrorCode &status); 2078 2079 /** 2080 * Returns by value, unit of energy: british-thermal-unit. 2081 * Also see {@link #createBritishThermalUnit()}. 2082 * @stable ICU 64 2083 */ 2084 static MeasureUnit getBritishThermalUnit(); 2085 2086 #ifndef U_HIDE_DRAFT_API 2087 /** 2088 * Returns by pointer, unit of energy: british-thermal-unit-it. 2089 * Caller owns returned value and must free it. 2090 * Also see {@link #getBritishThermalUnitIt()}. 2091 * @param status ICU error code. 2092 * @draft ICU 78 2093 */ 2094 static MeasureUnit *createBritishThermalUnitIt(UErrorCode &status); 2095 2096 /** 2097 * Returns by value, unit of energy: british-thermal-unit-it. 2098 * Also see {@link #createBritishThermalUnitIt()}. 2099 * @draft ICU 78 2100 */ 2101 static MeasureUnit getBritishThermalUnitIt(); 2102 #endif /* U_HIDE_DRAFT_API */ 2103 2104 /** 2105 * Returns by pointer, unit of energy: calorie. 2106 * Caller owns returned value and must free it. 2107 * Also see {@link #getCalorie()}. 2108 * @param status ICU error code. 2109 * @stable ICU 54 2110 */ 2111 static MeasureUnit *createCalorie(UErrorCode &status); 2112 2113 /** 2114 * Returns by value, unit of energy: calorie. 2115 * Also see {@link #createCalorie()}. 2116 * @stable ICU 64 2117 */ 2118 static MeasureUnit getCalorie(); 2119 2120 #ifndef U_HIDE_DRAFT_API 2121 /** 2122 * Returns by pointer, unit of energy: calorie-it. 2123 * Caller owns returned value and must free it. 2124 * Also see {@link #getCalorieIt()}. 2125 * @param status ICU error code. 2126 * @draft ICU 78 2127 */ 2128 static MeasureUnit *createCalorieIt(UErrorCode &status); 2129 2130 /** 2131 * Returns by value, unit of energy: calorie-it. 2132 * Also see {@link #createCalorieIt()}. 2133 * @draft ICU 78 2134 */ 2135 static MeasureUnit getCalorieIt(); 2136 #endif /* U_HIDE_DRAFT_API */ 2137 2138 /** 2139 * Returns by pointer, unit of energy: electronvolt. 2140 * Caller owns returned value and must free it. 2141 * Also see {@link #getElectronvolt()}. 2142 * @param status ICU error code. 2143 * @stable ICU 64 2144 */ 2145 static MeasureUnit *createElectronvolt(UErrorCode &status); 2146 2147 /** 2148 * Returns by value, unit of energy: electronvolt. 2149 * Also see {@link #createElectronvolt()}. 2150 * @stable ICU 64 2151 */ 2152 static MeasureUnit getElectronvolt(); 2153 2154 /** 2155 * Returns by pointer, unit of energy: foodcalorie. 2156 * Caller owns returned value and must free it. 2157 * Also see {@link #getFoodcalorie()}. 2158 * @param status ICU error code. 2159 * @stable ICU 54 2160 */ 2161 static MeasureUnit *createFoodcalorie(UErrorCode &status); 2162 2163 /** 2164 * Returns by value, unit of energy: foodcalorie. 2165 * Also see {@link #createFoodcalorie()}. 2166 * @stable ICU 64 2167 */ 2168 static MeasureUnit getFoodcalorie(); 2169 2170 #ifndef U_HIDE_DRAFT_API 2171 /** 2172 * Returns by pointer, unit of energy: gray. 2173 * Caller owns returned value and must free it. 2174 * Also see {@link #getGray()}. 2175 * @param status ICU error code. 2176 * @draft ICU 78 2177 */ 2178 static MeasureUnit *createGray(UErrorCode &status); 2179 2180 /** 2181 * Returns by value, unit of energy: gray. 2182 * Also see {@link #createGray()}. 2183 * @draft ICU 78 2184 */ 2185 static MeasureUnit getGray(); 2186 #endif /* U_HIDE_DRAFT_API */ 2187 2188 /** 2189 * Returns by pointer, unit of energy: joule. 2190 * Caller owns returned value and must free it. 2191 * Also see {@link #getJoule()}. 2192 * @param status ICU error code. 2193 * @stable ICU 54 2194 */ 2195 static MeasureUnit *createJoule(UErrorCode &status); 2196 2197 /** 2198 * Returns by value, unit of energy: joule. 2199 * Also see {@link #createJoule()}. 2200 * @stable ICU 64 2201 */ 2202 static MeasureUnit getJoule(); 2203 2204 /** 2205 * Returns by pointer, unit of energy: kilocalorie. 2206 * Caller owns returned value and must free it. 2207 * Also see {@link #getKilocalorie()}. 2208 * @param status ICU error code. 2209 * @stable ICU 54 2210 */ 2211 static MeasureUnit *createKilocalorie(UErrorCode &status); 2212 2213 /** 2214 * Returns by value, unit of energy: kilocalorie. 2215 * Also see {@link #createKilocalorie()}. 2216 * @stable ICU 64 2217 */ 2218 static MeasureUnit getKilocalorie(); 2219 2220 /** 2221 * Returns by pointer, unit of energy: kilojoule. 2222 * Caller owns returned value and must free it. 2223 * Also see {@link #getKilojoule()}. 2224 * @param status ICU error code. 2225 * @stable ICU 54 2226 */ 2227 static MeasureUnit *createKilojoule(UErrorCode &status); 2228 2229 /** 2230 * Returns by value, unit of energy: kilojoule. 2231 * Also see {@link #createKilojoule()}. 2232 * @stable ICU 64 2233 */ 2234 static MeasureUnit getKilojoule(); 2235 2236 /** 2237 * Returns by pointer, unit of energy: kilowatt-hour. 2238 * Caller owns returned value and must free it. 2239 * Also see {@link #getKilowattHour()}. 2240 * @param status ICU error code. 2241 * @stable ICU 54 2242 */ 2243 static MeasureUnit *createKilowattHour(UErrorCode &status); 2244 2245 /** 2246 * Returns by value, unit of energy: kilowatt-hour. 2247 * Also see {@link #createKilowattHour()}. 2248 * @stable ICU 64 2249 */ 2250 static MeasureUnit getKilowattHour(); 2251 2252 #ifndef U_HIDE_DRAFT_API 2253 /** 2254 * Returns by pointer, unit of energy: sievert. 2255 * Caller owns returned value and must free it. 2256 * Also see {@link #getSievert()}. 2257 * @param status ICU error code. 2258 * @draft ICU 78 2259 */ 2260 static MeasureUnit *createSievert(UErrorCode &status); 2261 2262 /** 2263 * Returns by value, unit of energy: sievert. 2264 * Also see {@link #createSievert()}. 2265 * @draft ICU 78 2266 */ 2267 static MeasureUnit getSievert(); 2268 #endif /* U_HIDE_DRAFT_API */ 2269 2270 /** 2271 * Returns by pointer, unit of energy: therm-us. 2272 * Caller owns returned value and must free it. 2273 * Also see {@link #getThermUs()}. 2274 * @param status ICU error code. 2275 * @stable ICU 65 2276 */ 2277 static MeasureUnit *createThermUs(UErrorCode &status); 2278 2279 /** 2280 * Returns by value, unit of energy: therm-us. 2281 * Also see {@link #createThermUs()}. 2282 * @stable ICU 65 2283 */ 2284 static MeasureUnit getThermUs(); 2285 2286 #ifndef U_HIDE_DRAFT_API 2287 /** 2288 * Returns by pointer, unit of force: kilogram-force. 2289 * Caller owns returned value and must free it. 2290 * Also see {@link #getKilogramForce()}. 2291 * @param status ICU error code. 2292 * @draft ICU 78 2293 */ 2294 static MeasureUnit *createKilogramForce(UErrorCode &status); 2295 2296 /** 2297 * Returns by value, unit of force: kilogram-force. 2298 * Also see {@link #createKilogramForce()}. 2299 * @draft ICU 78 2300 */ 2301 static MeasureUnit getKilogramForce(); 2302 #endif /* U_HIDE_DRAFT_API */ 2303 2304 /** 2305 * Returns by pointer, unit of force: kilowatt-hour-per-100-kilometer. 2306 * Caller owns returned value and must free it. 2307 * Also see {@link #getKilowattHourPer100Kilometer()}. 2308 * @param status ICU error code. 2309 * @stable ICU 70 2310 */ 2311 static MeasureUnit *createKilowattHourPer100Kilometer(UErrorCode &status); 2312 2313 /** 2314 * Returns by value, unit of force: kilowatt-hour-per-100-kilometer. 2315 * Also see {@link #createKilowattHourPer100Kilometer()}. 2316 * @stable ICU 70 2317 */ 2318 static MeasureUnit getKilowattHourPer100Kilometer(); 2319 2320 /** 2321 * Returns by pointer, unit of force: newton. 2322 * Caller owns returned value and must free it. 2323 * Also see {@link #getNewton()}. 2324 * @param status ICU error code. 2325 * @stable ICU 64 2326 */ 2327 static MeasureUnit *createNewton(UErrorCode &status); 2328 2329 /** 2330 * Returns by value, unit of force: newton. 2331 * Also see {@link #createNewton()}. 2332 * @stable ICU 64 2333 */ 2334 static MeasureUnit getNewton(); 2335 2336 /** 2337 * Returns by pointer, unit of force: pound-force. 2338 * Caller owns returned value and must free it. 2339 * Also see {@link #getPoundForce()}. 2340 * @param status ICU error code. 2341 * @stable ICU 64 2342 */ 2343 static MeasureUnit *createPoundForce(UErrorCode &status); 2344 2345 /** 2346 * Returns by value, unit of force: pound-force. 2347 * Also see {@link #createPoundForce()}. 2348 * @stable ICU 64 2349 */ 2350 static MeasureUnit getPoundForce(); 2351 2352 /** 2353 * Returns by pointer, unit of frequency: gigahertz. 2354 * Caller owns returned value and must free it. 2355 * Also see {@link #getGigahertz()}. 2356 * @param status ICU error code. 2357 * @stable ICU 54 2358 */ 2359 static MeasureUnit *createGigahertz(UErrorCode &status); 2360 2361 /** 2362 * Returns by value, unit of frequency: gigahertz. 2363 * Also see {@link #createGigahertz()}. 2364 * @stable ICU 64 2365 */ 2366 static MeasureUnit getGigahertz(); 2367 2368 /** 2369 * Returns by pointer, unit of frequency: hertz. 2370 * Caller owns returned value and must free it. 2371 * Also see {@link #getHertz()}. 2372 * @param status ICU error code. 2373 * @stable ICU 54 2374 */ 2375 static MeasureUnit *createHertz(UErrorCode &status); 2376 2377 /** 2378 * Returns by value, unit of frequency: hertz. 2379 * Also see {@link #createHertz()}. 2380 * @stable ICU 64 2381 */ 2382 static MeasureUnit getHertz(); 2383 2384 /** 2385 * Returns by pointer, unit of frequency: kilohertz. 2386 * Caller owns returned value and must free it. 2387 * Also see {@link #getKilohertz()}. 2388 * @param status ICU error code. 2389 * @stable ICU 54 2390 */ 2391 static MeasureUnit *createKilohertz(UErrorCode &status); 2392 2393 /** 2394 * Returns by value, unit of frequency: kilohertz. 2395 * Also see {@link #createKilohertz()}. 2396 * @stable ICU 64 2397 */ 2398 static MeasureUnit getKilohertz(); 2399 2400 /** 2401 * Returns by pointer, unit of frequency: megahertz. 2402 * Caller owns returned value and must free it. 2403 * Also see {@link #getMegahertz()}. 2404 * @param status ICU error code. 2405 * @stable ICU 54 2406 */ 2407 static MeasureUnit *createMegahertz(UErrorCode &status); 2408 2409 /** 2410 * Returns by value, unit of frequency: megahertz. 2411 * Also see {@link #createMegahertz()}. 2412 * @stable ICU 64 2413 */ 2414 static MeasureUnit getMegahertz(); 2415 2416 /** 2417 * Returns by pointer, unit of graphics: dot. 2418 * Caller owns returned value and must free it. 2419 * Also see {@link #getDot()}. 2420 * @param status ICU error code. 2421 * @stable ICU 68 2422 */ 2423 static MeasureUnit *createDot(UErrorCode &status); 2424 2425 /** 2426 * Returns by value, unit of graphics: dot. 2427 * Also see {@link #createDot()}. 2428 * @stable ICU 68 2429 */ 2430 static MeasureUnit getDot(); 2431 2432 /** 2433 * Returns by pointer, unit of graphics: dot-per-centimeter. 2434 * Caller owns returned value and must free it. 2435 * Also see {@link #getDotPerCentimeter()}. 2436 * @param status ICU error code. 2437 * @stable ICU 65 2438 */ 2439 static MeasureUnit *createDotPerCentimeter(UErrorCode &status); 2440 2441 /** 2442 * Returns by value, unit of graphics: dot-per-centimeter. 2443 * Also see {@link #createDotPerCentimeter()}. 2444 * @stable ICU 65 2445 */ 2446 static MeasureUnit getDotPerCentimeter(); 2447 2448 /** 2449 * Returns by pointer, unit of graphics: dot-per-inch. 2450 * Caller owns returned value and must free it. 2451 * Also see {@link #getDotPerInch()}. 2452 * @param status ICU error code. 2453 * @stable ICU 65 2454 */ 2455 static MeasureUnit *createDotPerInch(UErrorCode &status); 2456 2457 /** 2458 * Returns by value, unit of graphics: dot-per-inch. 2459 * Also see {@link #createDotPerInch()}. 2460 * @stable ICU 65 2461 */ 2462 static MeasureUnit getDotPerInch(); 2463 2464 /** 2465 * Returns by pointer, unit of graphics: em. 2466 * Caller owns returned value and must free it. 2467 * Also see {@link #getEm()}. 2468 * @param status ICU error code. 2469 * @stable ICU 65 2470 */ 2471 static MeasureUnit *createEm(UErrorCode &status); 2472 2473 /** 2474 * Returns by value, unit of graphics: em. 2475 * Also see {@link #createEm()}. 2476 * @stable ICU 65 2477 */ 2478 static MeasureUnit getEm(); 2479 2480 /** 2481 * Returns by pointer, unit of graphics: megapixel. 2482 * Caller owns returned value and must free it. 2483 * Also see {@link #getMegapixel()}. 2484 * @param status ICU error code. 2485 * @stable ICU 65 2486 */ 2487 static MeasureUnit *createMegapixel(UErrorCode &status); 2488 2489 /** 2490 * Returns by value, unit of graphics: megapixel. 2491 * Also see {@link #createMegapixel()}. 2492 * @stable ICU 65 2493 */ 2494 static MeasureUnit getMegapixel(); 2495 2496 /** 2497 * Returns by pointer, unit of graphics: pixel. 2498 * Caller owns returned value and must free it. 2499 * Also see {@link #getPixel()}. 2500 * @param status ICU error code. 2501 * @stable ICU 65 2502 */ 2503 static MeasureUnit *createPixel(UErrorCode &status); 2504 2505 /** 2506 * Returns by value, unit of graphics: pixel. 2507 * Also see {@link #createPixel()}. 2508 * @stable ICU 65 2509 */ 2510 static MeasureUnit getPixel(); 2511 2512 /** 2513 * Returns by pointer, unit of graphics: pixel-per-centimeter. 2514 * Caller owns returned value and must free it. 2515 * Also see {@link #getPixelPerCentimeter()}. 2516 * @param status ICU error code. 2517 * @stable ICU 65 2518 */ 2519 static MeasureUnit *createPixelPerCentimeter(UErrorCode &status); 2520 2521 /** 2522 * Returns by value, unit of graphics: pixel-per-centimeter. 2523 * Also see {@link #createPixelPerCentimeter()}. 2524 * @stable ICU 65 2525 */ 2526 static MeasureUnit getPixelPerCentimeter(); 2527 2528 /** 2529 * Returns by pointer, unit of graphics: pixel-per-inch. 2530 * Caller owns returned value and must free it. 2531 * Also see {@link #getPixelPerInch()}. 2532 * @param status ICU error code. 2533 * @stable ICU 65 2534 */ 2535 static MeasureUnit *createPixelPerInch(UErrorCode &status); 2536 2537 /** 2538 * Returns by value, unit of graphics: pixel-per-inch. 2539 * Also see {@link #createPixelPerInch()}. 2540 * @stable ICU 65 2541 */ 2542 static MeasureUnit getPixelPerInch(); 2543 2544 /** 2545 * Returns by pointer, unit of length: astronomical-unit. 2546 * Caller owns returned value and must free it. 2547 * Also see {@link #getAstronomicalUnit()}. 2548 * @param status ICU error code. 2549 * @stable ICU 54 2550 */ 2551 static MeasureUnit *createAstronomicalUnit(UErrorCode &status); 2552 2553 /** 2554 * Returns by value, unit of length: astronomical-unit. 2555 * Also see {@link #createAstronomicalUnit()}. 2556 * @stable ICU 64 2557 */ 2558 static MeasureUnit getAstronomicalUnit(); 2559 2560 /** 2561 * Returns by pointer, unit of length: centimeter. 2562 * Caller owns returned value and must free it. 2563 * Also see {@link #getCentimeter()}. 2564 * @param status ICU error code. 2565 * @stable ICU 53 2566 */ 2567 static MeasureUnit *createCentimeter(UErrorCode &status); 2568 2569 /** 2570 * Returns by value, unit of length: centimeter. 2571 * Also see {@link #createCentimeter()}. 2572 * @stable ICU 64 2573 */ 2574 static MeasureUnit getCentimeter(); 2575 2576 #ifndef U_HIDE_DRAFT_API 2577 /** 2578 * Returns by pointer, unit of length: chain. 2579 * Caller owns returned value and must free it. 2580 * Also see {@link #getChain()}. 2581 * @param status ICU error code. 2582 * @draft ICU 78 2583 */ 2584 static MeasureUnit *createChain(UErrorCode &status); 2585 2586 /** 2587 * Returns by value, unit of length: chain. 2588 * Also see {@link #createChain()}. 2589 * @draft ICU 78 2590 */ 2591 static MeasureUnit getChain(); 2592 #endif /* U_HIDE_DRAFT_API */ 2593 2594 /** 2595 * Returns by pointer, unit of length: decimeter. 2596 * Caller owns returned value and must free it. 2597 * Also see {@link #getDecimeter()}. 2598 * @param status ICU error code. 2599 * @stable ICU 54 2600 */ 2601 static MeasureUnit *createDecimeter(UErrorCode &status); 2602 2603 /** 2604 * Returns by value, unit of length: decimeter. 2605 * Also see {@link #createDecimeter()}. 2606 * @stable ICU 64 2607 */ 2608 static MeasureUnit getDecimeter(); 2609 2610 /** 2611 * Returns by pointer, unit of length: earth-radius. 2612 * Caller owns returned value and must free it. 2613 * Also see {@link #getEarthRadius()}. 2614 * @param status ICU error code. 2615 * @stable ICU 68 2616 */ 2617 static MeasureUnit *createEarthRadius(UErrorCode &status); 2618 2619 /** 2620 * Returns by value, unit of length: earth-radius. 2621 * Also see {@link #createEarthRadius()}. 2622 * @stable ICU 68 2623 */ 2624 static MeasureUnit getEarthRadius(); 2625 2626 /** 2627 * Returns by pointer, unit of length: fathom. 2628 * Caller owns returned value and must free it. 2629 * Also see {@link #getFathom()}. 2630 * @param status ICU error code. 2631 * @stable ICU 54 2632 */ 2633 static MeasureUnit *createFathom(UErrorCode &status); 2634 2635 /** 2636 * Returns by value, unit of length: fathom. 2637 * Also see {@link #createFathom()}. 2638 * @stable ICU 64 2639 */ 2640 static MeasureUnit getFathom(); 2641 2642 /** 2643 * Returns by pointer, unit of length: foot. 2644 * Caller owns returned value and must free it. 2645 * Also see {@link #getFoot()}. 2646 * @param status ICU error code. 2647 * @stable ICU 53 2648 */ 2649 static MeasureUnit *createFoot(UErrorCode &status); 2650 2651 /** 2652 * Returns by value, unit of length: foot. 2653 * Also see {@link #createFoot()}. 2654 * @stable ICU 64 2655 */ 2656 static MeasureUnit getFoot(); 2657 2658 /** 2659 * Returns by pointer, unit of length: furlong. 2660 * Caller owns returned value and must free it. 2661 * Also see {@link #getFurlong()}. 2662 * @param status ICU error code. 2663 * @stable ICU 54 2664 */ 2665 static MeasureUnit *createFurlong(UErrorCode &status); 2666 2667 /** 2668 * Returns by value, unit of length: furlong. 2669 * Also see {@link #createFurlong()}. 2670 * @stable ICU 64 2671 */ 2672 static MeasureUnit getFurlong(); 2673 2674 /** 2675 * Returns by pointer, unit of length: inch. 2676 * Caller owns returned value and must free it. 2677 * Also see {@link #getInch()}. 2678 * @param status ICU error code. 2679 * @stable ICU 53 2680 */ 2681 static MeasureUnit *createInch(UErrorCode &status); 2682 2683 /** 2684 * Returns by value, unit of length: inch. 2685 * Also see {@link #createInch()}. 2686 * @stable ICU 64 2687 */ 2688 static MeasureUnit getInch(); 2689 2690 #ifndef U_HIDE_DRAFT_API 2691 /** 2692 * Returns by pointer, unit of length: jo-jp. 2693 * Caller owns returned value and must free it. 2694 * Also see {@link #getJoJp()}. 2695 * @param status ICU error code. 2696 * @draft ICU 78 2697 */ 2698 static MeasureUnit *createJoJp(UErrorCode &status); 2699 2700 /** 2701 * Returns by value, unit of length: jo-jp. 2702 * Also see {@link #createJoJp()}. 2703 * @draft ICU 78 2704 */ 2705 static MeasureUnit getJoJp(); 2706 #endif /* U_HIDE_DRAFT_API */ 2707 2708 #ifndef U_HIDE_DRAFT_API 2709 /** 2710 * Returns by pointer, unit of length: ken. 2711 * Caller owns returned value and must free it. 2712 * Also see {@link #getKen()}. 2713 * @param status ICU error code. 2714 * @draft ICU 78 2715 */ 2716 static MeasureUnit *createKen(UErrorCode &status); 2717 2718 /** 2719 * Returns by value, unit of length: ken. 2720 * Also see {@link #createKen()}. 2721 * @draft ICU 78 2722 */ 2723 static MeasureUnit getKen(); 2724 #endif /* U_HIDE_DRAFT_API */ 2725 2726 /** 2727 * Returns by pointer, unit of length: kilometer. 2728 * Caller owns returned value and must free it. 2729 * Also see {@link #getKilometer()}. 2730 * @param status ICU error code. 2731 * @stable ICU 53 2732 */ 2733 static MeasureUnit *createKilometer(UErrorCode &status); 2734 2735 /** 2736 * Returns by value, unit of length: kilometer. 2737 * Also see {@link #createKilometer()}. 2738 * @stable ICU 64 2739 */ 2740 static MeasureUnit getKilometer(); 2741 2742 /** 2743 * Returns by pointer, unit of length: light-year. 2744 * Caller owns returned value and must free it. 2745 * Also see {@link #getLightYear()}. 2746 * @param status ICU error code. 2747 * @stable ICU 53 2748 */ 2749 static MeasureUnit *createLightYear(UErrorCode &status); 2750 2751 /** 2752 * Returns by value, unit of length: light-year. 2753 * Also see {@link #createLightYear()}. 2754 * @stable ICU 64 2755 */ 2756 static MeasureUnit getLightYear(); 2757 2758 /** 2759 * Returns by pointer, unit of length: meter. 2760 * Caller owns returned value and must free it. 2761 * Also see {@link #getMeter()}. 2762 * @param status ICU error code. 2763 * @stable ICU 53 2764 */ 2765 static MeasureUnit *createMeter(UErrorCode &status); 2766 2767 /** 2768 * Returns by value, unit of length: meter. 2769 * Also see {@link #createMeter()}. 2770 * @stable ICU 64 2771 */ 2772 static MeasureUnit getMeter(); 2773 2774 /** 2775 * Returns by pointer, unit of length: micrometer. 2776 * Caller owns returned value and must free it. 2777 * Also see {@link #getMicrometer()}. 2778 * @param status ICU error code. 2779 * @stable ICU 54 2780 */ 2781 static MeasureUnit *createMicrometer(UErrorCode &status); 2782 2783 /** 2784 * Returns by value, unit of length: micrometer. 2785 * Also see {@link #createMicrometer()}. 2786 * @stable ICU 64 2787 */ 2788 static MeasureUnit getMicrometer(); 2789 2790 /** 2791 * Returns by pointer, unit of length: mile. 2792 * Caller owns returned value and must free it. 2793 * Also see {@link #getMile()}. 2794 * @param status ICU error code. 2795 * @stable ICU 53 2796 */ 2797 static MeasureUnit *createMile(UErrorCode &status); 2798 2799 /** 2800 * Returns by value, unit of length: mile. 2801 * Also see {@link #createMile()}. 2802 * @stable ICU 64 2803 */ 2804 static MeasureUnit getMile(); 2805 2806 /** 2807 * Returns by pointer, unit of length: mile-scandinavian. 2808 * Caller owns returned value and must free it. 2809 * Also see {@link #getMileScandinavian()}. 2810 * @param status ICU error code. 2811 * @stable ICU 56 2812 */ 2813 static MeasureUnit *createMileScandinavian(UErrorCode &status); 2814 2815 /** 2816 * Returns by value, unit of length: mile-scandinavian. 2817 * Also see {@link #createMileScandinavian()}. 2818 * @stable ICU 64 2819 */ 2820 static MeasureUnit getMileScandinavian(); 2821 2822 /** 2823 * Returns by pointer, unit of length: millimeter. 2824 * Caller owns returned value and must free it. 2825 * Also see {@link #getMillimeter()}. 2826 * @param status ICU error code. 2827 * @stable ICU 53 2828 */ 2829 static MeasureUnit *createMillimeter(UErrorCode &status); 2830 2831 /** 2832 * Returns by value, unit of length: millimeter. 2833 * Also see {@link #createMillimeter()}. 2834 * @stable ICU 64 2835 */ 2836 static MeasureUnit getMillimeter(); 2837 2838 /** 2839 * Returns by pointer, unit of length: nanometer. 2840 * Caller owns returned value and must free it. 2841 * Also see {@link #getNanometer()}. 2842 * @param status ICU error code. 2843 * @stable ICU 54 2844 */ 2845 static MeasureUnit *createNanometer(UErrorCode &status); 2846 2847 /** 2848 * Returns by value, unit of length: nanometer. 2849 * Also see {@link #createNanometer()}. 2850 * @stable ICU 64 2851 */ 2852 static MeasureUnit getNanometer(); 2853 2854 /** 2855 * Returns by pointer, unit of length: nautical-mile. 2856 * Caller owns returned value and must free it. 2857 * Also see {@link #getNauticalMile()}. 2858 * @param status ICU error code. 2859 * @stable ICU 54 2860 */ 2861 static MeasureUnit *createNauticalMile(UErrorCode &status); 2862 2863 /** 2864 * Returns by value, unit of length: nautical-mile. 2865 * Also see {@link #createNauticalMile()}. 2866 * @stable ICU 64 2867 */ 2868 static MeasureUnit getNauticalMile(); 2869 2870 /** 2871 * Returns by pointer, unit of length: parsec. 2872 * Caller owns returned value and must free it. 2873 * Also see {@link #getParsec()}. 2874 * @param status ICU error code. 2875 * @stable ICU 54 2876 */ 2877 static MeasureUnit *createParsec(UErrorCode &status); 2878 2879 /** 2880 * Returns by value, unit of length: parsec. 2881 * Also see {@link #createParsec()}. 2882 * @stable ICU 64 2883 */ 2884 static MeasureUnit getParsec(); 2885 2886 /** 2887 * Returns by pointer, unit of length: picometer. 2888 * Caller owns returned value and must free it. 2889 * Also see {@link #getPicometer()}. 2890 * @param status ICU error code. 2891 * @stable ICU 53 2892 */ 2893 static MeasureUnit *createPicometer(UErrorCode &status); 2894 2895 /** 2896 * Returns by value, unit of length: picometer. 2897 * Also see {@link #createPicometer()}. 2898 * @stable ICU 64 2899 */ 2900 static MeasureUnit getPicometer(); 2901 2902 /** 2903 * Returns by pointer, unit of length: point. 2904 * Caller owns returned value and must free it. 2905 * Also see {@link #getPoint()}. 2906 * @param status ICU error code. 2907 * @stable ICU 59 2908 */ 2909 static MeasureUnit *createPoint(UErrorCode &status); 2910 2911 /** 2912 * Returns by value, unit of length: point. 2913 * Also see {@link #createPoint()}. 2914 * @stable ICU 64 2915 */ 2916 static MeasureUnit getPoint(); 2917 2918 #ifndef U_HIDE_DRAFT_API 2919 /** 2920 * Returns by pointer, unit of length: ri-jp. 2921 * Caller owns returned value and must free it. 2922 * Also see {@link #getRiJp()}. 2923 * @param status ICU error code. 2924 * @draft ICU 78 2925 */ 2926 static MeasureUnit *createRiJp(UErrorCode &status); 2927 2928 /** 2929 * Returns by value, unit of length: ri-jp. 2930 * Also see {@link #createRiJp()}. 2931 * @draft ICU 78 2932 */ 2933 static MeasureUnit getRiJp(); 2934 #endif /* U_HIDE_DRAFT_API */ 2935 2936 #ifndef U_HIDE_DRAFT_API 2937 /** 2938 * Returns by pointer, unit of length: rin. 2939 * Caller owns returned value and must free it. 2940 * Also see {@link #getRin()}. 2941 * @param status ICU error code. 2942 * @draft ICU 78 2943 */ 2944 static MeasureUnit *createRin(UErrorCode &status); 2945 2946 /** 2947 * Returns by value, unit of length: rin. 2948 * Also see {@link #createRin()}. 2949 * @draft ICU 78 2950 */ 2951 static MeasureUnit getRin(); 2952 #endif /* U_HIDE_DRAFT_API */ 2953 2954 #ifndef U_HIDE_DRAFT_API 2955 /** 2956 * Returns by pointer, unit of length: rod. 2957 * Caller owns returned value and must free it. 2958 * Also see {@link #getRod()}. 2959 * @param status ICU error code. 2960 * @draft ICU 78 2961 */ 2962 static MeasureUnit *createRod(UErrorCode &status); 2963 2964 /** 2965 * Returns by value, unit of length: rod. 2966 * Also see {@link #createRod()}. 2967 * @draft ICU 78 2968 */ 2969 static MeasureUnit getRod(); 2970 #endif /* U_HIDE_DRAFT_API */ 2971 2972 #ifndef U_HIDE_DRAFT_API 2973 /** 2974 * Returns by pointer, unit of length: shaku-cloth. 2975 * Caller owns returned value and must free it. 2976 * Also see {@link #getShakuCloth()}. 2977 * @param status ICU error code. 2978 * @draft ICU 78 2979 */ 2980 static MeasureUnit *createShakuCloth(UErrorCode &status); 2981 2982 /** 2983 * Returns by value, unit of length: shaku-cloth. 2984 * Also see {@link #createShakuCloth()}. 2985 * @draft ICU 78 2986 */ 2987 static MeasureUnit getShakuCloth(); 2988 #endif /* U_HIDE_DRAFT_API */ 2989 2990 #ifndef U_HIDE_DRAFT_API 2991 /** 2992 * Returns by pointer, unit of length: shaku-length. 2993 * Caller owns returned value and must free it. 2994 * Also see {@link #getShakuLength()}. 2995 * @param status ICU error code. 2996 * @draft ICU 78 2997 */ 2998 static MeasureUnit *createShakuLength(UErrorCode &status); 2999 3000 /** 3001 * Returns by value, unit of length: shaku-length. 3002 * Also see {@link #createShakuLength()}. 3003 * @draft ICU 78 3004 */ 3005 static MeasureUnit getShakuLength(); 3006 #endif /* U_HIDE_DRAFT_API */ 3007 3008 /** 3009 * Returns by pointer, unit of length: solar-radius. 3010 * Caller owns returned value and must free it. 3011 * Also see {@link #getSolarRadius()}. 3012 * @param status ICU error code. 3013 * @stable ICU 64 3014 */ 3015 static MeasureUnit *createSolarRadius(UErrorCode &status); 3016 3017 /** 3018 * Returns by value, unit of length: solar-radius. 3019 * Also see {@link #createSolarRadius()}. 3020 * @stable ICU 64 3021 */ 3022 static MeasureUnit getSolarRadius(); 3023 3024 #ifndef U_HIDE_DRAFT_API 3025 /** 3026 * Returns by pointer, unit of length: sun. 3027 * Caller owns returned value and must free it. 3028 * Also see {@link #getSun()}. 3029 * @param status ICU error code. 3030 * @draft ICU 78 3031 */ 3032 static MeasureUnit *createSun(UErrorCode &status); 3033 3034 /** 3035 * Returns by value, unit of length: sun. 3036 * Also see {@link #createSun()}. 3037 * @draft ICU 78 3038 */ 3039 static MeasureUnit getSun(); 3040 #endif /* U_HIDE_DRAFT_API */ 3041 3042 /** 3043 * Returns by pointer, unit of length: yard. 3044 * Caller owns returned value and must free it. 3045 * Also see {@link #getYard()}. 3046 * @param status ICU error code. 3047 * @stable ICU 53 3048 */ 3049 static MeasureUnit *createYard(UErrorCode &status); 3050 3051 /** 3052 * Returns by value, unit of length: yard. 3053 * Also see {@link #createYard()}. 3054 * @stable ICU 64 3055 */ 3056 static MeasureUnit getYard(); 3057 3058 /** 3059 * Returns by pointer, unit of light: candela. 3060 * Caller owns returned value and must free it. 3061 * Also see {@link #getCandela()}. 3062 * @param status ICU error code. 3063 * @stable ICU 68 3064 */ 3065 static MeasureUnit *createCandela(UErrorCode &status); 3066 3067 /** 3068 * Returns by value, unit of light: candela. 3069 * Also see {@link #createCandela()}. 3070 * @stable ICU 68 3071 */ 3072 static MeasureUnit getCandela(); 3073 3074 /** 3075 * Returns by pointer, unit of light: lumen. 3076 * Caller owns returned value and must free it. 3077 * Also see {@link #getLumen()}. 3078 * @param status ICU error code. 3079 * @stable ICU 68 3080 */ 3081 static MeasureUnit *createLumen(UErrorCode &status); 3082 3083 /** 3084 * Returns by value, unit of light: lumen. 3085 * Also see {@link #createLumen()}. 3086 * @stable ICU 68 3087 */ 3088 static MeasureUnit getLumen(); 3089 3090 /** 3091 * Returns by pointer, unit of light: lux. 3092 * Caller owns returned value and must free it. 3093 * Also see {@link #getLux()}. 3094 * @param status ICU error code. 3095 * @stable ICU 54 3096 */ 3097 static MeasureUnit *createLux(UErrorCode &status); 3098 3099 /** 3100 * Returns by value, unit of light: lux. 3101 * Also see {@link #createLux()}. 3102 * @stable ICU 64 3103 */ 3104 static MeasureUnit getLux(); 3105 3106 /** 3107 * Returns by pointer, unit of light: solar-luminosity. 3108 * Caller owns returned value and must free it. 3109 * Also see {@link #getSolarLuminosity()}. 3110 * @param status ICU error code. 3111 * @stable ICU 64 3112 */ 3113 static MeasureUnit *createSolarLuminosity(UErrorCode &status); 3114 3115 /** 3116 * Returns by value, unit of light: solar-luminosity. 3117 * Also see {@link #createSolarLuminosity()}. 3118 * @stable ICU 64 3119 */ 3120 static MeasureUnit getSolarLuminosity(); 3121 3122 #ifndef U_HIDE_DRAFT_API 3123 /** 3124 * Returns by pointer, unit of magnetic: tesla. 3125 * Caller owns returned value and must free it. 3126 * Also see {@link #getTesla()}. 3127 * @param status ICU error code. 3128 * @draft ICU 78 3129 */ 3130 static MeasureUnit *createTesla(UErrorCode &status); 3131 3132 /** 3133 * Returns by value, unit of magnetic: tesla. 3134 * Also see {@link #createTesla()}. 3135 * @draft ICU 78 3136 */ 3137 static MeasureUnit getTesla(); 3138 #endif /* U_HIDE_DRAFT_API */ 3139 3140 #ifndef U_HIDE_DRAFT_API 3141 /** 3142 * Returns by pointer, unit of magnetic: weber. 3143 * Caller owns returned value and must free it. 3144 * Also see {@link #getWeber()}. 3145 * @param status ICU error code. 3146 * @draft ICU 78 3147 */ 3148 static MeasureUnit *createWeber(UErrorCode &status); 3149 3150 /** 3151 * Returns by value, unit of magnetic: weber. 3152 * Also see {@link #createWeber()}. 3153 * @draft ICU 78 3154 */ 3155 static MeasureUnit getWeber(); 3156 #endif /* U_HIDE_DRAFT_API */ 3157 3158 /** 3159 * Returns by pointer, unit of mass: carat. 3160 * Caller owns returned value and must free it. 3161 * Also see {@link #getCarat()}. 3162 * @param status ICU error code. 3163 * @stable ICU 54 3164 */ 3165 static MeasureUnit *createCarat(UErrorCode &status); 3166 3167 /** 3168 * Returns by value, unit of mass: carat. 3169 * Also see {@link #createCarat()}. 3170 * @stable ICU 64 3171 */ 3172 static MeasureUnit getCarat(); 3173 3174 /** 3175 * Returns by pointer, unit of mass: dalton. 3176 * Caller owns returned value and must free it. 3177 * Also see {@link #getDalton()}. 3178 * @param status ICU error code. 3179 * @stable ICU 64 3180 */ 3181 static MeasureUnit *createDalton(UErrorCode &status); 3182 3183 /** 3184 * Returns by value, unit of mass: dalton. 3185 * Also see {@link #createDalton()}. 3186 * @stable ICU 64 3187 */ 3188 static MeasureUnit getDalton(); 3189 3190 /** 3191 * Returns by pointer, unit of mass: earth-mass. 3192 * Caller owns returned value and must free it. 3193 * Also see {@link #getEarthMass()}. 3194 * @param status ICU error code. 3195 * @stable ICU 64 3196 */ 3197 static MeasureUnit *createEarthMass(UErrorCode &status); 3198 3199 /** 3200 * Returns by value, unit of mass: earth-mass. 3201 * Also see {@link #createEarthMass()}. 3202 * @stable ICU 64 3203 */ 3204 static MeasureUnit getEarthMass(); 3205 3206 #ifndef U_HIDE_DRAFT_API 3207 /** 3208 * Returns by pointer, unit of mass: fun. 3209 * Caller owns returned value and must free it. 3210 * Also see {@link #getFun()}. 3211 * @param status ICU error code. 3212 * @draft ICU 78 3213 */ 3214 static MeasureUnit *createFun(UErrorCode &status); 3215 3216 /** 3217 * Returns by value, unit of mass: fun. 3218 * Also see {@link #createFun()}. 3219 * @draft ICU 78 3220 */ 3221 static MeasureUnit getFun(); 3222 #endif /* U_HIDE_DRAFT_API */ 3223 3224 /** 3225 * Returns by pointer, unit of mass: grain. 3226 * Caller owns returned value and must free it. 3227 * Also see {@link #getGrain()}. 3228 * @param status ICU error code. 3229 * @stable ICU 68 3230 */ 3231 static MeasureUnit *createGrain(UErrorCode &status); 3232 3233 /** 3234 * Returns by value, unit of mass: grain. 3235 * Also see {@link #createGrain()}. 3236 * @stable ICU 68 3237 */ 3238 static MeasureUnit getGrain(); 3239 3240 /** 3241 * Returns by pointer, unit of mass: gram. 3242 * Caller owns returned value and must free it. 3243 * Also see {@link #getGram()}. 3244 * @param status ICU error code. 3245 * @stable ICU 53 3246 */ 3247 static MeasureUnit *createGram(UErrorCode &status); 3248 3249 /** 3250 * Returns by value, unit of mass: gram. 3251 * Also see {@link #createGram()}. 3252 * @stable ICU 64 3253 */ 3254 static MeasureUnit getGram(); 3255 3256 /** 3257 * Returns by pointer, unit of mass: kilogram. 3258 * Caller owns returned value and must free it. 3259 * Also see {@link #getKilogram()}. 3260 * @param status ICU error code. 3261 * @stable ICU 53 3262 */ 3263 static MeasureUnit *createKilogram(UErrorCode &status); 3264 3265 /** 3266 * Returns by value, unit of mass: kilogram. 3267 * Also see {@link #createKilogram()}. 3268 * @stable ICU 64 3269 */ 3270 static MeasureUnit getKilogram(); 3271 3272 /** 3273 * Returns by pointer, unit of mass: microgram. 3274 * Caller owns returned value and must free it. 3275 * Also see {@link #getMicrogram()}. 3276 * @param status ICU error code. 3277 * @stable ICU 54 3278 */ 3279 static MeasureUnit *createMicrogram(UErrorCode &status); 3280 3281 /** 3282 * Returns by value, unit of mass: microgram. 3283 * Also see {@link #createMicrogram()}. 3284 * @stable ICU 64 3285 */ 3286 static MeasureUnit getMicrogram(); 3287 3288 /** 3289 * Returns by pointer, unit of mass: milligram. 3290 * Caller owns returned value and must free it. 3291 * Also see {@link #getMilligram()}. 3292 * @param status ICU error code. 3293 * @stable ICU 54 3294 */ 3295 static MeasureUnit *createMilligram(UErrorCode &status); 3296 3297 /** 3298 * Returns by value, unit of mass: milligram. 3299 * Also see {@link #createMilligram()}. 3300 * @stable ICU 64 3301 */ 3302 static MeasureUnit getMilligram(); 3303 3304 /** 3305 * Returns by pointer, unit of mass: ounce. 3306 * Caller owns returned value and must free it. 3307 * Also see {@link #getOunce()}. 3308 * @param status ICU error code. 3309 * @stable ICU 53 3310 */ 3311 static MeasureUnit *createOunce(UErrorCode &status); 3312 3313 /** 3314 * Returns by value, unit of mass: ounce. 3315 * Also see {@link #createOunce()}. 3316 * @stable ICU 64 3317 */ 3318 static MeasureUnit getOunce(); 3319 3320 /** 3321 * Returns by pointer, unit of mass: ounce-troy. 3322 * Caller owns returned value and must free it. 3323 * Also see {@link #getOunceTroy()}. 3324 * @param status ICU error code. 3325 * @stable ICU 54 3326 */ 3327 static MeasureUnit *createOunceTroy(UErrorCode &status); 3328 3329 /** 3330 * Returns by value, unit of mass: ounce-troy. 3331 * Also see {@link #createOunceTroy()}. 3332 * @stable ICU 64 3333 */ 3334 static MeasureUnit getOunceTroy(); 3335 3336 /** 3337 * Returns by pointer, unit of mass: pound. 3338 * Caller owns returned value and must free it. 3339 * Also see {@link #getPound()}. 3340 * @param status ICU error code. 3341 * @stable ICU 53 3342 */ 3343 static MeasureUnit *createPound(UErrorCode &status); 3344 3345 /** 3346 * Returns by value, unit of mass: pound. 3347 * Also see {@link #createPound()}. 3348 * @stable ICU 64 3349 */ 3350 static MeasureUnit getPound(); 3351 3352 #ifndef U_HIDE_DRAFT_API 3353 /** 3354 * Returns by pointer, unit of mass: slug. 3355 * Caller owns returned value and must free it. 3356 * Also see {@link #getSlug()}. 3357 * @param status ICU error code. 3358 * @draft ICU 78 3359 */ 3360 static MeasureUnit *createSlug(UErrorCode &status); 3361 3362 /** 3363 * Returns by value, unit of mass: slug. 3364 * Also see {@link #createSlug()}. 3365 * @draft ICU 78 3366 */ 3367 static MeasureUnit getSlug(); 3368 #endif /* U_HIDE_DRAFT_API */ 3369 3370 /** 3371 * Returns by pointer, unit of mass: solar-mass. 3372 * Caller owns returned value and must free it. 3373 * Also see {@link #getSolarMass()}. 3374 * @param status ICU error code. 3375 * @stable ICU 64 3376 */ 3377 static MeasureUnit *createSolarMass(UErrorCode &status); 3378 3379 /** 3380 * Returns by value, unit of mass: solar-mass. 3381 * Also see {@link #createSolarMass()}. 3382 * @stable ICU 64 3383 */ 3384 static MeasureUnit getSolarMass(); 3385 3386 /** 3387 * Returns by pointer, unit of mass: stone. 3388 * Caller owns returned value and must free it. 3389 * Also see {@link #getStone()}. 3390 * @param status ICU error code. 3391 * @stable ICU 54 3392 */ 3393 static MeasureUnit *createStone(UErrorCode &status); 3394 3395 /** 3396 * Returns by value, unit of mass: stone. 3397 * Also see {@link #createStone()}. 3398 * @stable ICU 64 3399 */ 3400 static MeasureUnit getStone(); 3401 3402 /** 3403 * Returns by pointer, unit of mass: ton. 3404 * Caller owns returned value and must free it. 3405 * Also see {@link #getTon()}. 3406 * @param status ICU error code. 3407 * @stable ICU 54 3408 */ 3409 static MeasureUnit *createTon(UErrorCode &status); 3410 3411 /** 3412 * Returns by value, unit of mass: ton. 3413 * Also see {@link #createTon()}. 3414 * @stable ICU 64 3415 */ 3416 static MeasureUnit getTon(); 3417 3418 /** 3419 * Returns by pointer, unit of mass: tonne. 3420 * Caller owns returned value and must free it. 3421 * Also see {@link #getTonne()}. 3422 * @param status ICU error code. 3423 * @stable ICU 72 3424 */ 3425 static MeasureUnit *createTonne(UErrorCode &status); 3426 3427 /** 3428 * Returns by value, unit of mass: tonne. 3429 * Also see {@link #createTonne()}. 3430 * @stable ICU 72 3431 */ 3432 static MeasureUnit getTonne(); 3433 3434 #ifndef U_HIDE_DEPRECATED_API 3435 /** 3436 * Returns by pointer, unit of mass: metric-ton 3437 * (renamed to tonne in CLDR 42 / ICU 72). 3438 * Caller owns returned value and must free it. 3439 * Also see {@link #getMetricTon()} and {@link #createTonne()}. 3440 * @param status ICU error code. 3441 * @deprecated ICU 78 use createTonne(UErrorCode &status) 3442 */ 3443 static MeasureUnit *createMetricTon(UErrorCode &status); 3444 3445 /** 3446 * Returns by value, unit of mass: metric-ton 3447 * (renamed to tonne in CLDR 42 / ICU 72). 3448 * Also see {@link #createMetricTon()} and {@link #getTonne()}. 3449 * @deprecated ICU 78 use getTonne() 3450 */ 3451 static MeasureUnit getMetricTon(); 3452 #endif /* U_HIDE_DEPRECATED_API */ 3453 3454 /** 3455 * Returns by pointer, unit of power: gigawatt. 3456 * Caller owns returned value and must free it. 3457 * Also see {@link #getGigawatt()}. 3458 * @param status ICU error code. 3459 * @stable ICU 54 3460 */ 3461 static MeasureUnit *createGigawatt(UErrorCode &status); 3462 3463 /** 3464 * Returns by value, unit of power: gigawatt. 3465 * Also see {@link #createGigawatt()}. 3466 * @stable ICU 64 3467 */ 3468 static MeasureUnit getGigawatt(); 3469 3470 /** 3471 * Returns by pointer, unit of power: horsepower. 3472 * Caller owns returned value and must free it. 3473 * Also see {@link #getHorsepower()}. 3474 * @param status ICU error code. 3475 * @stable ICU 53 3476 */ 3477 static MeasureUnit *createHorsepower(UErrorCode &status); 3478 3479 /** 3480 * Returns by value, unit of power: horsepower. 3481 * Also see {@link #createHorsepower()}. 3482 * @stable ICU 64 3483 */ 3484 static MeasureUnit getHorsepower(); 3485 3486 /** 3487 * Returns by pointer, unit of power: kilowatt. 3488 * Caller owns returned value and must free it. 3489 * Also see {@link #getKilowatt()}. 3490 * @param status ICU error code. 3491 * @stable ICU 53 3492 */ 3493 static MeasureUnit *createKilowatt(UErrorCode &status); 3494 3495 /** 3496 * Returns by value, unit of power: kilowatt. 3497 * Also see {@link #createKilowatt()}. 3498 * @stable ICU 64 3499 */ 3500 static MeasureUnit getKilowatt(); 3501 3502 /** 3503 * Returns by pointer, unit of power: megawatt. 3504 * Caller owns returned value and must free it. 3505 * Also see {@link #getMegawatt()}. 3506 * @param status ICU error code. 3507 * @stable ICU 54 3508 */ 3509 static MeasureUnit *createMegawatt(UErrorCode &status); 3510 3511 /** 3512 * Returns by value, unit of power: megawatt. 3513 * Also see {@link #createMegawatt()}. 3514 * @stable ICU 64 3515 */ 3516 static MeasureUnit getMegawatt(); 3517 3518 /** 3519 * Returns by pointer, unit of power: milliwatt. 3520 * Caller owns returned value and must free it. 3521 * Also see {@link #getMilliwatt()}. 3522 * @param status ICU error code. 3523 * @stable ICU 54 3524 */ 3525 static MeasureUnit *createMilliwatt(UErrorCode &status); 3526 3527 /** 3528 * Returns by value, unit of power: milliwatt. 3529 * Also see {@link #createMilliwatt()}. 3530 * @stable ICU 64 3531 */ 3532 static MeasureUnit getMilliwatt(); 3533 3534 /** 3535 * Returns by pointer, unit of power: watt. 3536 * Caller owns returned value and must free it. 3537 * Also see {@link #getWatt()}. 3538 * @param status ICU error code. 3539 * @stable ICU 53 3540 */ 3541 static MeasureUnit *createWatt(UErrorCode &status); 3542 3543 /** 3544 * Returns by value, unit of power: watt. 3545 * Also see {@link #createWatt()}. 3546 * @stable ICU 64 3547 */ 3548 static MeasureUnit getWatt(); 3549 3550 /** 3551 * Returns by pointer, unit of pressure: atmosphere. 3552 * Caller owns returned value and must free it. 3553 * Also see {@link #getAtmosphere()}. 3554 * @param status ICU error code. 3555 * @stable ICU 63 3556 */ 3557 static MeasureUnit *createAtmosphere(UErrorCode &status); 3558 3559 /** 3560 * Returns by value, unit of pressure: atmosphere. 3561 * Also see {@link #createAtmosphere()}. 3562 * @stable ICU 64 3563 */ 3564 static MeasureUnit getAtmosphere(); 3565 3566 /** 3567 * Returns by pointer, unit of pressure: bar. 3568 * Caller owns returned value and must free it. 3569 * Also see {@link #getBar()}. 3570 * @param status ICU error code. 3571 * @stable ICU 65 3572 */ 3573 static MeasureUnit *createBar(UErrorCode &status); 3574 3575 /** 3576 * Returns by value, unit of pressure: bar. 3577 * Also see {@link #createBar()}. 3578 * @stable ICU 65 3579 */ 3580 static MeasureUnit getBar(); 3581 3582 /** 3583 * Returns by pointer, unit of pressure: gasoline-energy-density. 3584 * Caller owns returned value and must free it. 3585 * Also see {@link #getGasolineEnergyDensity()}. 3586 * @param status ICU error code. 3587 * @stable ICU 74 3588 */ 3589 static MeasureUnit *createGasolineEnergyDensity(UErrorCode &status); 3590 3591 /** 3592 * Returns by value, unit of pressure: gasoline-energy-density. 3593 * Also see {@link #createGasolineEnergyDensity()}. 3594 * @stable ICU 74 3595 */ 3596 static MeasureUnit getGasolineEnergyDensity(); 3597 3598 /** 3599 * Returns by pointer, unit of pressure: hectopascal. 3600 * Caller owns returned value and must free it. 3601 * Also see {@link #getHectopascal()}. 3602 * @param status ICU error code. 3603 * @stable ICU 53 3604 */ 3605 static MeasureUnit *createHectopascal(UErrorCode &status); 3606 3607 /** 3608 * Returns by value, unit of pressure: hectopascal. 3609 * Also see {@link #createHectopascal()}. 3610 * @stable ICU 64 3611 */ 3612 static MeasureUnit getHectopascal(); 3613 3614 /** 3615 * Returns by pointer, unit of pressure: inch-ofhg. 3616 * Caller owns returned value and must free it. 3617 * Also see {@link #getInchHg()}. 3618 * @param status ICU error code. 3619 * @stable ICU 53 3620 */ 3621 static MeasureUnit *createInchHg(UErrorCode &status); 3622 3623 /** 3624 * Returns by value, unit of pressure: inch-ofhg. 3625 * Also see {@link #createInchHg()}. 3626 * @stable ICU 64 3627 */ 3628 static MeasureUnit getInchHg(); 3629 3630 /** 3631 * Returns by pointer, unit of pressure: kilopascal. 3632 * Caller owns returned value and must free it. 3633 * Also see {@link #getKilopascal()}. 3634 * @param status ICU error code. 3635 * @stable ICU 64 3636 */ 3637 static MeasureUnit *createKilopascal(UErrorCode &status); 3638 3639 /** 3640 * Returns by value, unit of pressure: kilopascal. 3641 * Also see {@link #createKilopascal()}. 3642 * @stable ICU 64 3643 */ 3644 static MeasureUnit getKilopascal(); 3645 3646 /** 3647 * Returns by pointer, unit of pressure: megapascal. 3648 * Caller owns returned value and must free it. 3649 * Also see {@link #getMegapascal()}. 3650 * @param status ICU error code. 3651 * @stable ICU 64 3652 */ 3653 static MeasureUnit *createMegapascal(UErrorCode &status); 3654 3655 /** 3656 * Returns by value, unit of pressure: megapascal. 3657 * Also see {@link #createMegapascal()}. 3658 * @stable ICU 64 3659 */ 3660 static MeasureUnit getMegapascal(); 3661 3662 /** 3663 * Returns by pointer, unit of pressure: millibar. 3664 * Caller owns returned value and must free it. 3665 * Also see {@link #getMillibar()}. 3666 * @param status ICU error code. 3667 * @stable ICU 53 3668 */ 3669 static MeasureUnit *createMillibar(UErrorCode &status); 3670 3671 /** 3672 * Returns by value, unit of pressure: millibar. 3673 * Also see {@link #createMillibar()}. 3674 * @stable ICU 64 3675 */ 3676 static MeasureUnit getMillibar(); 3677 3678 /** 3679 * Returns by pointer, unit of pressure: millimeter-ofhg. 3680 * Caller owns returned value and must free it. 3681 * Also see {@link #getMillimeterOfMercury()}. 3682 * @param status ICU error code. 3683 * @stable ICU 54 3684 */ 3685 static MeasureUnit *createMillimeterOfMercury(UErrorCode &status); 3686 3687 /** 3688 * Returns by value, unit of pressure: millimeter-ofhg. 3689 * Also see {@link #createMillimeterOfMercury()}. 3690 * @stable ICU 64 3691 */ 3692 static MeasureUnit getMillimeterOfMercury(); 3693 3694 #ifndef U_HIDE_DRAFT_API 3695 /** 3696 * Returns by pointer, unit of pressure: ofhg. 3697 * Caller owns returned value and must free it. 3698 * Also see {@link #getOfhg()}. 3699 * @param status ICU error code. 3700 * @draft ICU 78 3701 */ 3702 static MeasureUnit *createOfhg(UErrorCode &status); 3703 3704 /** 3705 * Returns by value, unit of pressure: ofhg. 3706 * Also see {@link #createOfhg()}. 3707 * @draft ICU 78 3708 */ 3709 static MeasureUnit getOfhg(); 3710 #endif /* U_HIDE_DRAFT_API */ 3711 3712 /** 3713 * Returns by pointer, unit of pressure: pascal. 3714 * Caller owns returned value and must free it. 3715 * Also see {@link #getPascal()}. 3716 * @param status ICU error code. 3717 * @stable ICU 65 3718 */ 3719 static MeasureUnit *createPascal(UErrorCode &status); 3720 3721 /** 3722 * Returns by value, unit of pressure: pascal. 3723 * Also see {@link #createPascal()}. 3724 * @stable ICU 65 3725 */ 3726 static MeasureUnit getPascal(); 3727 3728 /** 3729 * Returns by pointer, unit of pressure: pound-force-per-square-inch. 3730 * Caller owns returned value and must free it. 3731 * Also see {@link #getPoundPerSquareInch()}. 3732 * @param status ICU error code. 3733 * @stable ICU 54 3734 */ 3735 static MeasureUnit *createPoundPerSquareInch(UErrorCode &status); 3736 3737 /** 3738 * Returns by value, unit of pressure: pound-force-per-square-inch. 3739 * Also see {@link #createPoundPerSquareInch()}. 3740 * @stable ICU 64 3741 */ 3742 static MeasureUnit getPoundPerSquareInch(); 3743 3744 /** 3745 * Returns by pointer, unit of speed: beaufort. 3746 * Caller owns returned value and must free it. 3747 * Also see {@link #getBeaufort()}. 3748 * @param status ICU error code. 3749 * @stable ICU 73 3750 */ 3751 static MeasureUnit *createBeaufort(UErrorCode &status); 3752 3753 /** 3754 * Returns by value, unit of speed: beaufort. 3755 * Also see {@link #createBeaufort()}. 3756 * @stable ICU 73 3757 */ 3758 static MeasureUnit getBeaufort(); 3759 3760 /** 3761 * Returns by pointer, unit of speed: kilometer-per-hour. 3762 * Caller owns returned value and must free it. 3763 * Also see {@link #getKilometerPerHour()}. 3764 * @param status ICU error code. 3765 * @stable ICU 53 3766 */ 3767 static MeasureUnit *createKilometerPerHour(UErrorCode &status); 3768 3769 /** 3770 * Returns by value, unit of speed: kilometer-per-hour. 3771 * Also see {@link #createKilometerPerHour()}. 3772 * @stable ICU 64 3773 */ 3774 static MeasureUnit getKilometerPerHour(); 3775 3776 /** 3777 * Returns by pointer, unit of speed: knot. 3778 * Caller owns returned value and must free it. 3779 * Also see {@link #getKnot()}. 3780 * @param status ICU error code. 3781 * @stable ICU 56 3782 */ 3783 static MeasureUnit *createKnot(UErrorCode &status); 3784 3785 /** 3786 * Returns by value, unit of speed: knot. 3787 * Also see {@link #createKnot()}. 3788 * @stable ICU 64 3789 */ 3790 static MeasureUnit getKnot(); 3791 3792 /** 3793 * Returns by pointer, unit of speed: light-speed. 3794 * Caller owns returned value and must free it. 3795 * Also see {@link #getLightSpeed()}. 3796 * @param status ICU error code. 3797 * @stable ICU 76 3798 */ 3799 static MeasureUnit *createLightSpeed(UErrorCode &status); 3800 3801 /** 3802 * Returns by value, unit of speed: light-speed. 3803 * Also see {@link #createLightSpeed()}. 3804 * @stable ICU 76 3805 */ 3806 static MeasureUnit getLightSpeed(); 3807 3808 /** 3809 * Returns by pointer, unit of speed: meter-per-second. 3810 * Caller owns returned value and must free it. 3811 * Also see {@link #getMeterPerSecond()}. 3812 * @param status ICU error code. 3813 * @stable ICU 53 3814 */ 3815 static MeasureUnit *createMeterPerSecond(UErrorCode &status); 3816 3817 /** 3818 * Returns by value, unit of speed: meter-per-second. 3819 * Also see {@link #createMeterPerSecond()}. 3820 * @stable ICU 64 3821 */ 3822 static MeasureUnit getMeterPerSecond(); 3823 3824 /** 3825 * Returns by pointer, unit of speed: mile-per-hour. 3826 * Caller owns returned value and must free it. 3827 * Also see {@link #getMilePerHour()}. 3828 * @param status ICU error code. 3829 * @stable ICU 53 3830 */ 3831 static MeasureUnit *createMilePerHour(UErrorCode &status); 3832 3833 /** 3834 * Returns by value, unit of speed: mile-per-hour. 3835 * Also see {@link #createMilePerHour()}. 3836 * @stable ICU 64 3837 */ 3838 static MeasureUnit getMilePerHour(); 3839 3840 /** 3841 * Returns by pointer, unit of temperature: celsius. 3842 * Caller owns returned value and must free it. 3843 * Also see {@link #getCelsius()}. 3844 * @param status ICU error code. 3845 * @stable ICU 53 3846 */ 3847 static MeasureUnit *createCelsius(UErrorCode &status); 3848 3849 /** 3850 * Returns by value, unit of temperature: celsius. 3851 * Also see {@link #createCelsius()}. 3852 * @stable ICU 64 3853 */ 3854 static MeasureUnit getCelsius(); 3855 3856 /** 3857 * Returns by pointer, unit of temperature: fahrenheit. 3858 * Caller owns returned value and must free it. 3859 * Also see {@link #getFahrenheit()}. 3860 * @param status ICU error code. 3861 * @stable ICU 53 3862 */ 3863 static MeasureUnit *createFahrenheit(UErrorCode &status); 3864 3865 /** 3866 * Returns by value, unit of temperature: fahrenheit. 3867 * Also see {@link #createFahrenheit()}. 3868 * @stable ICU 64 3869 */ 3870 static MeasureUnit getFahrenheit(); 3871 3872 /** 3873 * Returns by pointer, unit of temperature: generic. 3874 * Caller owns returned value and must free it. 3875 * Also see {@link #getGenericTemperature()}. 3876 * @param status ICU error code. 3877 * @stable ICU 56 3878 */ 3879 static MeasureUnit *createGenericTemperature(UErrorCode &status); 3880 3881 /** 3882 * Returns by value, unit of temperature: generic. 3883 * Also see {@link #createGenericTemperature()}. 3884 * @stable ICU 64 3885 */ 3886 static MeasureUnit getGenericTemperature(); 3887 3888 /** 3889 * Returns by pointer, unit of temperature: kelvin. 3890 * Caller owns returned value and must free it. 3891 * Also see {@link #getKelvin()}. 3892 * @param status ICU error code. 3893 * @stable ICU 54 3894 */ 3895 static MeasureUnit *createKelvin(UErrorCode &status); 3896 3897 /** 3898 * Returns by value, unit of temperature: kelvin. 3899 * Also see {@link #createKelvin()}. 3900 * @stable ICU 64 3901 */ 3902 static MeasureUnit getKelvin(); 3903 3904 #ifndef U_HIDE_DRAFT_API 3905 /** 3906 * Returns by pointer, unit of temperature: rankine. 3907 * Caller owns returned value and must free it. 3908 * Also see {@link #getRankine()}. 3909 * @param status ICU error code. 3910 * @draft ICU 78 3911 */ 3912 static MeasureUnit *createRankine(UErrorCode &status); 3913 3914 /** 3915 * Returns by value, unit of temperature: rankine. 3916 * Also see {@link #createRankine()}. 3917 * @draft ICU 78 3918 */ 3919 static MeasureUnit getRankine(); 3920 #endif /* U_HIDE_DRAFT_API */ 3921 3922 /** 3923 * Returns by pointer, unit of torque: newton-meter. 3924 * Caller owns returned value and must free it. 3925 * Also see {@link #getNewtonMeter()}. 3926 * @param status ICU error code. 3927 * @stable ICU 64 3928 */ 3929 static MeasureUnit *createNewtonMeter(UErrorCode &status); 3930 3931 /** 3932 * Returns by value, unit of torque: newton-meter. 3933 * Also see {@link #createNewtonMeter()}. 3934 * @stable ICU 64 3935 */ 3936 static MeasureUnit getNewtonMeter(); 3937 3938 /** 3939 * Returns by pointer, unit of torque: pound-force-foot. 3940 * Caller owns returned value and must free it. 3941 * Also see {@link #getPoundFoot()}. 3942 * @param status ICU error code. 3943 * @stable ICU 64 3944 */ 3945 static MeasureUnit *createPoundFoot(UErrorCode &status); 3946 3947 /** 3948 * Returns by value, unit of torque: pound-force-foot. 3949 * Also see {@link #createPoundFoot()}. 3950 * @stable ICU 64 3951 */ 3952 static MeasureUnit getPoundFoot(); 3953 3954 /** 3955 * Returns by pointer, unit of volume: acre-foot. 3956 * Caller owns returned value and must free it. 3957 * Also see {@link #getAcreFoot()}. 3958 * @param status ICU error code. 3959 * @stable ICU 54 3960 */ 3961 static MeasureUnit *createAcreFoot(UErrorCode &status); 3962 3963 /** 3964 * Returns by value, unit of volume: acre-foot. 3965 * Also see {@link #createAcreFoot()}. 3966 * @stable ICU 64 3967 */ 3968 static MeasureUnit getAcreFoot(); 3969 3970 /** 3971 * Returns by pointer, unit of volume: barrel. 3972 * Caller owns returned value and must free it. 3973 * Also see {@link #getBarrel()}. 3974 * @param status ICU error code. 3975 * @stable ICU 64 3976 */ 3977 static MeasureUnit *createBarrel(UErrorCode &status); 3978 3979 /** 3980 * Returns by value, unit of volume: barrel. 3981 * Also see {@link #createBarrel()}. 3982 * @stable ICU 64 3983 */ 3984 static MeasureUnit getBarrel(); 3985 3986 /** 3987 * Returns by pointer, unit of volume: bushel. 3988 * Caller owns returned value and must free it. 3989 * Also see {@link #getBushel()}. 3990 * @param status ICU error code. 3991 * @stable ICU 54 3992 */ 3993 static MeasureUnit *createBushel(UErrorCode &status); 3994 3995 /** 3996 * Returns by value, unit of volume: bushel. 3997 * Also see {@link #createBushel()}. 3998 * @stable ICU 64 3999 */ 4000 static MeasureUnit getBushel(); 4001 4002 /** 4003 * Returns by pointer, unit of volume: centiliter. 4004 * Caller owns returned value and must free it. 4005 * Also see {@link #getCentiliter()}. 4006 * @param status ICU error code. 4007 * @stable ICU 54 4008 */ 4009 static MeasureUnit *createCentiliter(UErrorCode &status); 4010 4011 /** 4012 * Returns by value, unit of volume: centiliter. 4013 * Also see {@link #createCentiliter()}. 4014 * @stable ICU 64 4015 */ 4016 static MeasureUnit getCentiliter(); 4017 4018 /** 4019 * Returns by pointer, unit of volume: cubic-centimeter. 4020 * Caller owns returned value and must free it. 4021 * Also see {@link #getCubicCentimeter()}. 4022 * @param status ICU error code. 4023 * @stable ICU 54 4024 */ 4025 static MeasureUnit *createCubicCentimeter(UErrorCode &status); 4026 4027 /** 4028 * Returns by value, unit of volume: cubic-centimeter. 4029 * Also see {@link #createCubicCentimeter()}. 4030 * @stable ICU 64 4031 */ 4032 static MeasureUnit getCubicCentimeter(); 4033 4034 /** 4035 * Returns by pointer, unit of volume: cubic-foot. 4036 * Caller owns returned value and must free it. 4037 * Also see {@link #getCubicFoot()}. 4038 * @param status ICU error code. 4039 * @stable ICU 54 4040 */ 4041 static MeasureUnit *createCubicFoot(UErrorCode &status); 4042 4043 /** 4044 * Returns by value, unit of volume: cubic-foot. 4045 * Also see {@link #createCubicFoot()}. 4046 * @stable ICU 64 4047 */ 4048 static MeasureUnit getCubicFoot(); 4049 4050 /** 4051 * Returns by pointer, unit of volume: cubic-inch. 4052 * Caller owns returned value and must free it. 4053 * Also see {@link #getCubicInch()}. 4054 * @param status ICU error code. 4055 * @stable ICU 54 4056 */ 4057 static MeasureUnit *createCubicInch(UErrorCode &status); 4058 4059 /** 4060 * Returns by value, unit of volume: cubic-inch. 4061 * Also see {@link #createCubicInch()}. 4062 * @stable ICU 64 4063 */ 4064 static MeasureUnit getCubicInch(); 4065 4066 /** 4067 * Returns by pointer, unit of volume: cubic-kilometer. 4068 * Caller owns returned value and must free it. 4069 * Also see {@link #getCubicKilometer()}. 4070 * @param status ICU error code. 4071 * @stable ICU 53 4072 */ 4073 static MeasureUnit *createCubicKilometer(UErrorCode &status); 4074 4075 /** 4076 * Returns by value, unit of volume: cubic-kilometer. 4077 * Also see {@link #createCubicKilometer()}. 4078 * @stable ICU 64 4079 */ 4080 static MeasureUnit getCubicKilometer(); 4081 4082 /** 4083 * Returns by pointer, unit of volume: cubic-meter. 4084 * Caller owns returned value and must free it. 4085 * Also see {@link #getCubicMeter()}. 4086 * @param status ICU error code. 4087 * @stable ICU 54 4088 */ 4089 static MeasureUnit *createCubicMeter(UErrorCode &status); 4090 4091 /** 4092 * Returns by value, unit of volume: cubic-meter. 4093 * Also see {@link #createCubicMeter()}. 4094 * @stable ICU 64 4095 */ 4096 static MeasureUnit getCubicMeter(); 4097 4098 /** 4099 * Returns by pointer, unit of volume: cubic-mile. 4100 * Caller owns returned value and must free it. 4101 * Also see {@link #getCubicMile()}. 4102 * @param status ICU error code. 4103 * @stable ICU 53 4104 */ 4105 static MeasureUnit *createCubicMile(UErrorCode &status); 4106 4107 /** 4108 * Returns by value, unit of volume: cubic-mile. 4109 * Also see {@link #createCubicMile()}. 4110 * @stable ICU 64 4111 */ 4112 static MeasureUnit getCubicMile(); 4113 4114 /** 4115 * Returns by pointer, unit of volume: cubic-yard. 4116 * Caller owns returned value and must free it. 4117 * Also see {@link #getCubicYard()}. 4118 * @param status ICU error code. 4119 * @stable ICU 54 4120 */ 4121 static MeasureUnit *createCubicYard(UErrorCode &status); 4122 4123 /** 4124 * Returns by value, unit of volume: cubic-yard. 4125 * Also see {@link #createCubicYard()}. 4126 * @stable ICU 64 4127 */ 4128 static MeasureUnit getCubicYard(); 4129 4130 /** 4131 * Returns by pointer, unit of volume: cup. 4132 * Caller owns returned value and must free it. 4133 * Also see {@link #getCup()}. 4134 * @param status ICU error code. 4135 * @stable ICU 54 4136 */ 4137 static MeasureUnit *createCup(UErrorCode &status); 4138 4139 /** 4140 * Returns by value, unit of volume: cup. 4141 * Also see {@link #createCup()}. 4142 * @stable ICU 64 4143 */ 4144 static MeasureUnit getCup(); 4145 4146 #ifndef U_HIDE_DRAFT_API 4147 /** 4148 * Returns by pointer, unit of volume: cup-imperial. 4149 * Caller owns returned value and must free it. 4150 * Also see {@link #getCupImperial()}. 4151 * @param status ICU error code. 4152 * @draft ICU 78 4153 */ 4154 static MeasureUnit *createCupImperial(UErrorCode &status); 4155 4156 /** 4157 * Returns by value, unit of volume: cup-imperial. 4158 * Also see {@link #createCupImperial()}. 4159 * @draft ICU 78 4160 */ 4161 static MeasureUnit getCupImperial(); 4162 #endif /* U_HIDE_DRAFT_API */ 4163 4164 #ifndef U_HIDE_DRAFT_API 4165 /** 4166 * Returns by pointer, unit of volume: cup-jp. 4167 * Caller owns returned value and must free it. 4168 * Also see {@link #getCupJp()}. 4169 * @param status ICU error code. 4170 * @draft ICU 78 4171 */ 4172 static MeasureUnit *createCupJp(UErrorCode &status); 4173 4174 /** 4175 * Returns by value, unit of volume: cup-jp. 4176 * Also see {@link #createCupJp()}. 4177 * @draft ICU 78 4178 */ 4179 static MeasureUnit getCupJp(); 4180 #endif /* U_HIDE_DRAFT_API */ 4181 4182 /** 4183 * Returns by pointer, unit of volume: cup-metric. 4184 * Caller owns returned value and must free it. 4185 * Also see {@link #getCupMetric()}. 4186 * @param status ICU error code. 4187 * @stable ICU 56 4188 */ 4189 static MeasureUnit *createCupMetric(UErrorCode &status); 4190 4191 /** 4192 * Returns by value, unit of volume: cup-metric. 4193 * Also see {@link #createCupMetric()}. 4194 * @stable ICU 64 4195 */ 4196 static MeasureUnit getCupMetric(); 4197 4198 /** 4199 * Returns by pointer, unit of volume: deciliter. 4200 * Caller owns returned value and must free it. 4201 * Also see {@link #getDeciliter()}. 4202 * @param status ICU error code. 4203 * @stable ICU 54 4204 */ 4205 static MeasureUnit *createDeciliter(UErrorCode &status); 4206 4207 /** 4208 * Returns by value, unit of volume: deciliter. 4209 * Also see {@link #createDeciliter()}. 4210 * @stable ICU 64 4211 */ 4212 static MeasureUnit getDeciliter(); 4213 4214 /** 4215 * Returns by pointer, unit of volume: dessert-spoon. 4216 * Caller owns returned value and must free it. 4217 * Also see {@link #getDessertSpoon()}. 4218 * @param status ICU error code. 4219 * @stable ICU 68 4220 */ 4221 static MeasureUnit *createDessertSpoon(UErrorCode &status); 4222 4223 /** 4224 * Returns by value, unit of volume: dessert-spoon. 4225 * Also see {@link #createDessertSpoon()}. 4226 * @stable ICU 68 4227 */ 4228 static MeasureUnit getDessertSpoon(); 4229 4230 /** 4231 * Returns by pointer, unit of volume: dessert-spoon-imperial. 4232 * Caller owns returned value and must free it. 4233 * Also see {@link #getDessertSpoonImperial()}. 4234 * @param status ICU error code. 4235 * @stable ICU 68 4236 */ 4237 static MeasureUnit *createDessertSpoonImperial(UErrorCode &status); 4238 4239 /** 4240 * Returns by value, unit of volume: dessert-spoon-imperial. 4241 * Also see {@link #createDessertSpoonImperial()}. 4242 * @stable ICU 68 4243 */ 4244 static MeasureUnit getDessertSpoonImperial(); 4245 4246 /** 4247 * Returns by pointer, unit of volume: dram. 4248 * Caller owns returned value and must free it. 4249 * Also see {@link #getDram()}. 4250 * @param status ICU error code. 4251 * @stable ICU 68 4252 */ 4253 static MeasureUnit *createDram(UErrorCode &status); 4254 4255 /** 4256 * Returns by value, unit of volume: dram. 4257 * Also see {@link #createDram()}. 4258 * @stable ICU 68 4259 */ 4260 static MeasureUnit getDram(); 4261 4262 /** 4263 * Returns by pointer, unit of volume: drop. 4264 * Caller owns returned value and must free it. 4265 * Also see {@link #getDrop()}. 4266 * @param status ICU error code. 4267 * @stable ICU 68 4268 */ 4269 static MeasureUnit *createDrop(UErrorCode &status); 4270 4271 /** 4272 * Returns by value, unit of volume: drop. 4273 * Also see {@link #createDrop()}. 4274 * @stable ICU 68 4275 */ 4276 static MeasureUnit getDrop(); 4277 4278 /** 4279 * Returns by pointer, unit of volume: fluid-ounce. 4280 * Caller owns returned value and must free it. 4281 * Also see {@link #getFluidOunce()}. 4282 * @param status ICU error code. 4283 * @stable ICU 54 4284 */ 4285 static MeasureUnit *createFluidOunce(UErrorCode &status); 4286 4287 /** 4288 * Returns by value, unit of volume: fluid-ounce. 4289 * Also see {@link #createFluidOunce()}. 4290 * @stable ICU 64 4291 */ 4292 static MeasureUnit getFluidOunce(); 4293 4294 /** 4295 * Returns by pointer, unit of volume: fluid-ounce-imperial. 4296 * Caller owns returned value and must free it. 4297 * Also see {@link #getFluidOunceImperial()}. 4298 * @param status ICU error code. 4299 * @stable ICU 64 4300 */ 4301 static MeasureUnit *createFluidOunceImperial(UErrorCode &status); 4302 4303 /** 4304 * Returns by value, unit of volume: fluid-ounce-imperial. 4305 * Also see {@link #createFluidOunceImperial()}. 4306 * @stable ICU 64 4307 */ 4308 static MeasureUnit getFluidOunceImperial(); 4309 4310 #ifndef U_HIDE_DRAFT_API 4311 /** 4312 * Returns by pointer, unit of volume: fluid-ounce-metric. 4313 * Caller owns returned value and must free it. 4314 * Also see {@link #getFluidOunceMetric()}. 4315 * @param status ICU error code. 4316 * @draft ICU 78 4317 */ 4318 static MeasureUnit *createFluidOunceMetric(UErrorCode &status); 4319 4320 /** 4321 * Returns by value, unit of volume: fluid-ounce-metric. 4322 * Also see {@link #createFluidOunceMetric()}. 4323 * @draft ICU 78 4324 */ 4325 static MeasureUnit getFluidOunceMetric(); 4326 #endif /* U_HIDE_DRAFT_API */ 4327 4328 /** 4329 * Returns by pointer, unit of volume: gallon. 4330 * Caller owns returned value and must free it. 4331 * Also see {@link #getGallon()}. 4332 * @param status ICU error code. 4333 * @stable ICU 54 4334 */ 4335 static MeasureUnit *createGallon(UErrorCode &status); 4336 4337 /** 4338 * Returns by value, unit of volume: gallon. 4339 * Also see {@link #createGallon()}. 4340 * @stable ICU 64 4341 */ 4342 static MeasureUnit getGallon(); 4343 4344 /** 4345 * Returns by pointer, unit of volume: gallon-imperial. 4346 * Caller owns returned value and must free it. 4347 * Also see {@link #getGallonImperial()}. 4348 * @param status ICU error code. 4349 * @stable ICU 57 4350 */ 4351 static MeasureUnit *createGallonImperial(UErrorCode &status); 4352 4353 /** 4354 * Returns by value, unit of volume: gallon-imperial. 4355 * Also see {@link #createGallonImperial()}. 4356 * @stable ICU 64 4357 */ 4358 static MeasureUnit getGallonImperial(); 4359 4360 /** 4361 * Returns by pointer, unit of volume: hectoliter. 4362 * Caller owns returned value and must free it. 4363 * Also see {@link #getHectoliter()}. 4364 * @param status ICU error code. 4365 * @stable ICU 54 4366 */ 4367 static MeasureUnit *createHectoliter(UErrorCode &status); 4368 4369 /** 4370 * Returns by value, unit of volume: hectoliter. 4371 * Also see {@link #createHectoliter()}. 4372 * @stable ICU 64 4373 */ 4374 static MeasureUnit getHectoliter(); 4375 4376 /** 4377 * Returns by pointer, unit of volume: jigger. 4378 * Caller owns returned value and must free it. 4379 * Also see {@link #getJigger()}. 4380 * @param status ICU error code. 4381 * @stable ICU 68 4382 */ 4383 static MeasureUnit *createJigger(UErrorCode &status); 4384 4385 /** 4386 * Returns by value, unit of volume: jigger. 4387 * Also see {@link #createJigger()}. 4388 * @stable ICU 68 4389 */ 4390 static MeasureUnit getJigger(); 4391 4392 #ifndef U_HIDE_DRAFT_API 4393 /** 4394 * Returns by pointer, unit of volume: koku. 4395 * Caller owns returned value and must free it. 4396 * Also see {@link #getKoku()}. 4397 * @param status ICU error code. 4398 * @draft ICU 78 4399 */ 4400 static MeasureUnit *createKoku(UErrorCode &status); 4401 4402 /** 4403 * Returns by value, unit of volume: koku. 4404 * Also see {@link #createKoku()}. 4405 * @draft ICU 78 4406 */ 4407 static MeasureUnit getKoku(); 4408 #endif /* U_HIDE_DRAFT_API */ 4409 4410 #ifndef U_HIDE_DRAFT_API 4411 /** 4412 * Returns by pointer, unit of volume: kosaji. 4413 * Caller owns returned value and must free it. 4414 * Also see {@link #getKosaji()}. 4415 * @param status ICU error code. 4416 * @draft ICU 78 4417 */ 4418 static MeasureUnit *createKosaji(UErrorCode &status); 4419 4420 /** 4421 * Returns by value, unit of volume: kosaji. 4422 * Also see {@link #createKosaji()}. 4423 * @draft ICU 78 4424 */ 4425 static MeasureUnit getKosaji(); 4426 #endif /* U_HIDE_DRAFT_API */ 4427 4428 /** 4429 * Returns by pointer, unit of volume: liter. 4430 * Caller owns returned value and must free it. 4431 * Also see {@link #getLiter()}. 4432 * @param status ICU error code. 4433 * @stable ICU 53 4434 */ 4435 static MeasureUnit *createLiter(UErrorCode &status); 4436 4437 /** 4438 * Returns by value, unit of volume: liter. 4439 * Also see {@link #createLiter()}. 4440 * @stable ICU 64 4441 */ 4442 static MeasureUnit getLiter(); 4443 4444 /** 4445 * Returns by pointer, unit of volume: megaliter. 4446 * Caller owns returned value and must free it. 4447 * Also see {@link #getMegaliter()}. 4448 * @param status ICU error code. 4449 * @stable ICU 54 4450 */ 4451 static MeasureUnit *createMegaliter(UErrorCode &status); 4452 4453 /** 4454 * Returns by value, unit of volume: megaliter. 4455 * Also see {@link #createMegaliter()}. 4456 * @stable ICU 64 4457 */ 4458 static MeasureUnit getMegaliter(); 4459 4460 /** 4461 * Returns by pointer, unit of volume: milliliter. 4462 * Caller owns returned value and must free it. 4463 * Also see {@link #getMilliliter()}. 4464 * @param status ICU error code. 4465 * @stable ICU 54 4466 */ 4467 static MeasureUnit *createMilliliter(UErrorCode &status); 4468 4469 /** 4470 * Returns by value, unit of volume: milliliter. 4471 * Also see {@link #createMilliliter()}. 4472 * @stable ICU 64 4473 */ 4474 static MeasureUnit getMilliliter(); 4475 4476 #ifndef U_HIDE_DRAFT_API 4477 /** 4478 * Returns by pointer, unit of volume: osaji. 4479 * Caller owns returned value and must free it. 4480 * Also see {@link #getOsaji()}. 4481 * @param status ICU error code. 4482 * @draft ICU 78 4483 */ 4484 static MeasureUnit *createOsaji(UErrorCode &status); 4485 4486 /** 4487 * Returns by value, unit of volume: osaji. 4488 * Also see {@link #createOsaji()}. 4489 * @draft ICU 78 4490 */ 4491 static MeasureUnit getOsaji(); 4492 #endif /* U_HIDE_DRAFT_API */ 4493 4494 /** 4495 * Returns by pointer, unit of volume: pinch. 4496 * Caller owns returned value and must free it. 4497 * Also see {@link #getPinch()}. 4498 * @param status ICU error code. 4499 * @stable ICU 68 4500 */ 4501 static MeasureUnit *createPinch(UErrorCode &status); 4502 4503 /** 4504 * Returns by value, unit of volume: pinch. 4505 * Also see {@link #createPinch()}. 4506 * @stable ICU 68 4507 */ 4508 static MeasureUnit getPinch(); 4509 4510 /** 4511 * Returns by pointer, unit of volume: pint. 4512 * Caller owns returned value and must free it. 4513 * Also see {@link #getPint()}. 4514 * @param status ICU error code. 4515 * @stable ICU 54 4516 */ 4517 static MeasureUnit *createPint(UErrorCode &status); 4518 4519 /** 4520 * Returns by value, unit of volume: pint. 4521 * Also see {@link #createPint()}. 4522 * @stable ICU 64 4523 */ 4524 static MeasureUnit getPint(); 4525 4526 #ifndef U_HIDE_DRAFT_API 4527 /** 4528 * Returns by pointer, unit of volume: pint-imperial. 4529 * Caller owns returned value and must free it. 4530 * Also see {@link #getPintImperial()}. 4531 * @param status ICU error code. 4532 * @draft ICU 78 4533 */ 4534 static MeasureUnit *createPintImperial(UErrorCode &status); 4535 4536 /** 4537 * Returns by value, unit of volume: pint-imperial. 4538 * Also see {@link #createPintImperial()}. 4539 * @draft ICU 78 4540 */ 4541 static MeasureUnit getPintImperial(); 4542 #endif /* U_HIDE_DRAFT_API */ 4543 4544 /** 4545 * Returns by pointer, unit of volume: pint-metric. 4546 * Caller owns returned value and must free it. 4547 * Also see {@link #getPintMetric()}. 4548 * @param status ICU error code. 4549 * @stable ICU 56 4550 */ 4551 static MeasureUnit *createPintMetric(UErrorCode &status); 4552 4553 /** 4554 * Returns by value, unit of volume: pint-metric. 4555 * Also see {@link #createPintMetric()}. 4556 * @stable ICU 64 4557 */ 4558 static MeasureUnit getPintMetric(); 4559 4560 /** 4561 * Returns by pointer, unit of volume: quart. 4562 * Caller owns returned value and must free it. 4563 * Also see {@link #getQuart()}. 4564 * @param status ICU error code. 4565 * @stable ICU 54 4566 */ 4567 static MeasureUnit *createQuart(UErrorCode &status); 4568 4569 /** 4570 * Returns by value, unit of volume: quart. 4571 * Also see {@link #createQuart()}. 4572 * @stable ICU 64 4573 */ 4574 static MeasureUnit getQuart(); 4575 4576 /** 4577 * Returns by pointer, unit of volume: quart-imperial. 4578 * Caller owns returned value and must free it. 4579 * Also see {@link #getQuartImperial()}. 4580 * @param status ICU error code. 4581 * @stable ICU 68 4582 */ 4583 static MeasureUnit *createQuartImperial(UErrorCode &status); 4584 4585 /** 4586 * Returns by value, unit of volume: quart-imperial. 4587 * Also see {@link #createQuartImperial()}. 4588 * @stable ICU 68 4589 */ 4590 static MeasureUnit getQuartImperial(); 4591 4592 #ifndef U_HIDE_DRAFT_API 4593 /** 4594 * Returns by pointer, unit of volume: sai. 4595 * Caller owns returned value and must free it. 4596 * Also see {@link #getSai()}. 4597 * @param status ICU error code. 4598 * @draft ICU 78 4599 */ 4600 static MeasureUnit *createSai(UErrorCode &status); 4601 4602 /** 4603 * Returns by value, unit of volume: sai. 4604 * Also see {@link #createSai()}. 4605 * @draft ICU 78 4606 */ 4607 static MeasureUnit getSai(); 4608 #endif /* U_HIDE_DRAFT_API */ 4609 4610 #ifndef U_HIDE_DRAFT_API 4611 /** 4612 * Returns by pointer, unit of volume: shaku. 4613 * Caller owns returned value and must free it. 4614 * Also see {@link #getShaku()}. 4615 * @param status ICU error code. 4616 * @draft ICU 78 4617 */ 4618 static MeasureUnit *createShaku(UErrorCode &status); 4619 4620 /** 4621 * Returns by value, unit of volume: shaku. 4622 * Also see {@link #createShaku()}. 4623 * @draft ICU 78 4624 */ 4625 static MeasureUnit getShaku(); 4626 #endif /* U_HIDE_DRAFT_API */ 4627 4628 /** 4629 * Returns by pointer, unit of volume: tablespoon. 4630 * Caller owns returned value and must free it. 4631 * Also see {@link #getTablespoon()}. 4632 * @param status ICU error code. 4633 * @stable ICU 54 4634 */ 4635 static MeasureUnit *createTablespoon(UErrorCode &status); 4636 4637 /** 4638 * Returns by value, unit of volume: tablespoon. 4639 * Also see {@link #createTablespoon()}. 4640 * @stable ICU 64 4641 */ 4642 static MeasureUnit getTablespoon(); 4643 4644 /** 4645 * Returns by pointer, unit of volume: teaspoon. 4646 * Caller owns returned value and must free it. 4647 * Also see {@link #getTeaspoon()}. 4648 * @param status ICU error code. 4649 * @stable ICU 54 4650 */ 4651 static MeasureUnit *createTeaspoon(UErrorCode &status); 4652 4653 /** 4654 * Returns by value, unit of volume: teaspoon. 4655 * Also see {@link #createTeaspoon()}. 4656 * @stable ICU 64 4657 */ 4658 static MeasureUnit getTeaspoon(); 4659 4660 #ifndef U_HIDE_DRAFT_API 4661 /** 4662 * Returns by pointer, unit of volume: to-jp. 4663 * Caller owns returned value and must free it. 4664 * Also see {@link #getToJp()}. 4665 * @param status ICU error code. 4666 * @draft ICU 78 4667 */ 4668 static MeasureUnit *createToJp(UErrorCode &status); 4669 4670 /** 4671 * Returns by value, unit of volume: to-jp. 4672 * Also see {@link #createToJp()}. 4673 * @draft ICU 78 4674 */ 4675 static MeasureUnit getToJp(); 4676 #endif /* U_HIDE_DRAFT_API */ 4677 4678 // End generated createXXX methods 4679 4680 protected: 4681 4682 #ifndef U_HIDE_INTERNAL_API 4683 /** 4684 * For ICU use only. 4685 * @internal 4686 */ 4687 void initTime(const char *timeId); 4688 4689 /** 4690 * For ICU use only. 4691 * @internal 4692 */ 4693 void initCurrency(StringPiece isoCurrency); 4694 4695 #endif /* U_HIDE_INTERNAL_API */ 4696 4697 private: 4698 4699 // Used by new draft APIs in ICU 67. If non-null, fImpl is owned by the 4700 // MeasureUnit. 4701 MeasureUnitImpl* fImpl; 4702 4703 // An index into a static string list in measunit.cpp. If set to -1, fImpl 4704 // is in use instead of fTypeId and fSubTypeId. 4705 int16_t fSubTypeId; 4706 // An index into a static string list in measunit.cpp. If set to -1, fImpl 4707 // is in use instead of fTypeId and fSubTypeId. 4708 int8_t fTypeId; 4709 4710 MeasureUnit(int32_t typeId, int32_t subTypeId); 4711 MeasureUnit(MeasureUnitImpl&& impl); 4712 void setTo(int32_t typeId, int32_t subTypeId); 4713 static MeasureUnit *create(int typeId, int subTypeId, UErrorCode &status); 4714 4715 /** 4716 * Sets output's typeId and subTypeId according to subType, if subType is a 4717 * valid/known identifier. 4718 * 4719 * @return Whether subType is known to ICU. If false, output was not 4720 * modified. 4721 */ 4722 static bool findBySubType(StringPiece subType, MeasureUnit* output); 4723 4724 /** Internal version of public API */ 4725 LocalArray<MeasureUnit> splitToSingleUnitsImpl(int32_t& outCount, UErrorCode& status) const; 4726 4727 friend class MeasureUnitImpl; 4728 4729 // For access to findBySubType 4730 friend class number::impl::LongNameHandler; 4731 }; 4732 4733 // inline impl of @stable ICU 68 method 4734 inline std::pair<LocalArray<MeasureUnit>, int32_t> 4735 MeasureUnit::splitToSingleUnits(UErrorCode& status) const { 4736 int32_t length; 4737 auto array = splitToSingleUnitsImpl(length, status); 4738 return std::make_pair(std::move(array), length); 4739 } 4740 4741 U_NAMESPACE_END 4742 4743 #endif // !UNCONFIG_NO_FORMATTING 4744 4745 #endif /* U_SHOW_CPLUSPLUS_API */ 4746 4747 #endif // __MEASUREUNIT_H__