[ACR][10/10/2013][Remove]Removing API versioning to support E_OUT_OF_RANGE exception...
[platform/framework/native/appfw.git] / inc / FBaseInteger.h
index 249ec8e..d84f13b 100644 (file)
@@ -1,5 +1,4 @@
 //
-// Open Service Platform
 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
 //
 // Licensed under the Apache License, Version 2.0 (the License);
@@ -28,7 +27,6 @@
 
 #include <FBaseNumber.h>
 
-
 namespace Tizen { namespace Base
 {
 /**
@@ -163,11 +161,15 @@ public:
         *      @since 2.0
         *
         *      @return         An error code
-        *      @param[in]      s                       A string representing the numeric value
-        *      @param[out]     ret                     The result of the operation
-        *      @exception      E_SUCCESS    The method is successful.
-        *      @exception      E_NUM_FORMAT The specified string does not contain a number that can be parsed.
-        *      @remarks        This method accepts decimal, hexadecimal, and octal numbers given by the
+        *      @param[in]      s               A string representing the numeric value
+        *      @param[out]     ret             The result of the operation
+        *      @exception      E_SUCCESS       The method is successful.
+        *      @exception      E_NUM_FORMAT    The specified string does not contain a number that can be parsed.
+        *      @exception      E_OUT_OF_RANGE  The decoded value is not between VALUE_MIN and VALUE_MAX range.
+        *
+        *      @remarks        
+        *                      - This method guarantees that the original value of out-parameter is not changed when the method returns error.
+        *                      - This method accepts decimal, hexadecimal, and octal numbers given by the
         *                              following grammar:
         *      @code
         *      - DecodableString:
@@ -212,10 +214,13 @@ public:
         *      @return         An error code
         *      @param[in]      s                               A string representing a numeric value
         *      @param[out]     ret                             The result of the operation
-        *      @exception      E_SUCCESS               The method is successful.
+        *      @exception      E_SUCCESS       The method is successful.
         *      @exception      E_NUM_FORMAT    The specified string does not contain a number that can be parsed.
-        *      @remarks        This method assumes that the string representing the numeric value
-        *                              uses a radix 10.
+        *      @exception      E_OUT_OF_RANGE  The parsed value is not between VALUE_MIN and VALUE_MAX range.
+        *
+        *      @remarks
+        *                              - This method assumes that the string representing the numeric value uses a radix 10.
+        *                              - This method guarantees that the original value of out-parameter is not changed when the method returns error.
         */
        static result Parse(const String& s, int& ret);
 
@@ -226,25 +231,44 @@ public:
         *
         *      @return         An error code
         *      @param[in]      s                               A string representing a numeric value
-        *  @param[in]  radix                   The radix of the string representing the numeric value @n
-        *                                                              It must either be 2, 8, 10, or 16.
+        *      @param[in]      radix                   The radix of the string representing the numeric value @n
+        *                                              Radix value range is from 2 to 36.
         *      @param[out]     ret                             The result of the operation
-        *      @exception      E_SUCCESS               The method is successful.
+        *      @exception      E_SUCCESS       The method is successful.
         *      @exception      E_NUM_FORMAT    The specified string does not contain a number that can be parsed.
-        *  @exception  E_OUT_OF_RANGE The specified @c radix is invalid.
+        *      @exception      E_OUT_OF_RANGE  The specified @c radix is invalid or
+        *                                      The parsed value is not between VALUE_MIN and VALUE_MAX range.
+        *
+        *      @remarks        This method guarantees that the original value of out-parameter is not changed when the method returns error.
         */
        static result Parse(const String& s, int radix, int& ret);
 
        /**
-        *      Gets the @c signed @c char equivalent of the current instance of the %Integer class.
+        *      Gets the @c char equivalent of the current instance of the %Integer class.
         *
         *      @since 2.0
+        *      @brief  <i> [Deprecated] </i>
+        *
+        *      @deprecated     This method has portability issue.
+        *                      Return value may not be @c signed @c char since char is treated as unsigned char in ARM architecture. @n
+        *                      Use ToInt8() method to get @c int8_t
+        *
+        *      @return         A @c char equivalent of the current instance
         *
-        *      @return         A @c signed @c char equivalent of the current instance
         */
        virtual char ToChar(void) const;
 
        /**
+        *      Gets the @c int8_t equivalent of the current instance of %Integer.
+        *
+        *      @since 3.0
+        *
+        *      @return The @c int8_t equivalent of the current instance
+        *
+        */
+       virtual int8_t ToInt8(void) const;
+
+       /**
         *      Gets the @c signed @c short equivalent of the current instance of the %Integer class.
         *
         *      @since 2.0
@@ -323,7 +347,7 @@ public:
         *
         *      @since 2.0
         */
-       static const int VALUE_MAX = (int) 0x7FFFFFFF;
+       static const int VALUE_MAX = static_cast< int >(0x7FFFFFFF);
 
        /**
         *      A constant holding the minimum value of type @c int. @n
@@ -331,7 +355,7 @@ public:
         *
         *      @since 2.0
         */
-       static const int VALUE_MIN = (int) 0x80000000;
+       static const int VALUE_MIN = static_cast< int >(0x80000000);
 
        /**
         * An integer value of this instance.
@@ -343,7 +367,7 @@ public:
 
 private:
        friend class _IntegerImpl;
-       class _IntegerImpl * __pIntegerImpl;
+       class _IntegerImpl* __pIntegerImpl;
 
 }; // Integer