]> granicus.if.org Git - icu/commitdiff
Minimal edit moving some UnitConverter code into namespace units.
authorHugo van der Merwe <17109322+hugovdm@users.noreply.github.com>
Tue, 7 Jul 2020 09:16:30 +0000 (11:16 +0200)
committerHugo van der Merwe <17109322+hugovdm@users.noreply.github.com>
Tue, 7 Jul 2020 18:43:13 +0000 (20:43 +0200)
icu4c/source/i18n/unitconverter.cpp
icu4c/source/i18n/unitconverter.h

index b4c849df9cefa326106d72a1458858b69eed5acd..6c0c46c2d72cf16db520039d9a2ee08d23e7adfe 100644 (file)
 U_NAMESPACE_BEGIN
 namespace units {
 
-namespace {
-
-/* Internal Structure */
-
-enum Constants {
-    CONSTANT_FT2M,    // ft2m stands for foot to meter.
-    CONSTANT_PI,      // PI
-    CONSTANT_GRAVITY, // Gravity
-    CONSTANT_G,
-    CONSTANT_GAL_IMP2M3, // Gallon imp to m3
-    CONSTANT_LB2KG,      // Pound to Kilogram
-
-    // Must be the last element.
-    CONSTANTS_COUNT
-};
-
-typedef enum SigNum {
-    NEGATIVE = -1,
-    POSITIVE = 1,
-} SigNum;
-
-/* Represents a conversion factor */
-struct Factor {
-    double factorNum = 1;
-    double factorDen = 1;
-    double offset = 0;
-    bool reciprocal = false;
-    int32_t constants[CONSTANTS_COUNT] = {};
-
-    void multiplyBy(const Factor &rhs) {
+void Factor::multiplyBy(const Factor &rhs) {
         factorNum *= rhs.factorNum;
         factorDen *= rhs.factorDen;
         for (int i = 0; i < CONSTANTS_COUNT; i++) {
@@ -60,7 +31,7 @@ struct Factor {
         offset = std::max(rhs.offset, offset);
     }
 
-    void divideBy(const Factor &rhs) {
+void Factor::divideBy(const Factor &rhs) {
         factorNum *= rhs.factorDen;
         factorDen *= rhs.factorNum;
         for (int i = 0; i < CONSTANTS_COUNT; i++) {
@@ -73,8 +44,7 @@ struct Factor {
         offset = std::max(rhs.offset, offset);
     }
 
-    // Apply the power to the factor.
-    void power(int32_t power) {
+void Factor::power(int32_t power) {
         // multiply all the constant by the power.
         for (int i = 0; i < CONSTANTS_COUNT; i++) {
             constants[i] *= power;
@@ -92,8 +62,7 @@ struct Factor {
         }
     }
 
-    // Flip the `Factor`, for example, factor= 2/3, flippedFactor = 3/2
-    void flip() {
+void Factor::flip() {
         std::swap(factorNum, factorDen);
 
         for (int i = 0; i < CONSTANTS_COUNT; i++) {
@@ -101,8 +70,7 @@ struct Factor {
         }
     }
 
-    // Apply SI prefix to the `Factor`
-    void applySiPrefix(UMeasureSIPrefix siPrefix) {
+void Factor::applySiPrefix(UMeasureSIPrefix siPrefix) {
         if (siPrefix == UMeasureSIPrefix::UMEASURE_SI_PREFIX_ONE) return; // No need to do anything
 
         double siApplied = std::pow(10.0, std::abs(siPrefix));
@@ -115,7 +83,7 @@ struct Factor {
         factorNum *= siApplied;
     }
 
-    void substituteConstants() {
+void Factor::substituteConstants() {
         double constantsValues[CONSTANTS_COUNT];
 
         // TODO: Load those constant values from units data.
@@ -144,7 +112,8 @@ struct Factor {
             this->constants[i] = 0;
         }
     }
-};
+
+namespace {
 
 /* Helpers */
 
index b54a11942b17149fc60777daf5d4c16bd630c115..eea07b1ec8c4c66de6fc4aaadc0d36781e17f58f 100644 (file)
 U_NAMESPACE_BEGIN
 namespace units {
 
+/* Internal Structure */
+
+enum Constants {
+    CONSTANT_FT2M,    // ft2m stands for foot to meter.
+    CONSTANT_PI,      // PI
+    CONSTANT_GRAVITY, // Gravity
+    CONSTANT_G,
+    CONSTANT_GAL_IMP2M3, // Gallon imp to m3
+    CONSTANT_LB2KG,      // Pound to Kilogram
+
+    // Must be the last element.
+    CONSTANTS_COUNT
+};
+
+typedef enum SigNum {
+    NEGATIVE = -1,
+    POSITIVE = 1,
+} SigNum;
+
+/* Represents a conversion factor */
+struct Factor {
+    double factorNum = 1;
+    double factorDen = 1;
+    double offset = 0;
+    bool reciprocal = false;
+    int32_t constants[CONSTANTS_COUNT] = {};
+
+    void multiplyBy(const Factor &rhs);
+    void divideBy(const Factor &rhs);
+
+    // Apply the power to the factor.
+    void power(int32_t power);
+
+    // Flip the `Factor`, for example, factor= 2/3, flippedFactor = 3/2
+    void flip();
+
+    // Apply SI prefix to the `Factor`
+    void applySiPrefix(UMeasureSIPrefix siPrefix);
+    void substituteConstants();
+};
+
 /**
  * Represents the conversion rate between `source` and `target`.
  */