2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
20 * @brief This is the header file for the %Number class.
22 * This header file contains the declarations and definitions of the %Number class. @n
23 * This class is the abstract base class of all wrapped numeric types.
25 #ifndef _FBASE_NUMBER_H_
26 #define _FBASE_NUMBER_H_
28 #include <FBaseObject.h>
29 #include <FBaseString.h>
32 namespace Tizen { namespace Base
36 * @brief This class is the base class of all wrapped numeric types.
40 * The %Number class is the abstract base class of all wrapped numeric classes.
41 * The subclasses of %Number must provide methods to convert the represented
42 * numeric value to @c char, @c short, @c int, @c long, @c float, and @c double.
44 * The following example demonstrates how to use the %Number class.
50 * using namespace Tizen::Base;
53 * MyClass::NumberSample(void)
55 * Long ld(0x12345678L);
56 * int i = ld.Toint(); // i == 0x5678
57 * char ch = ld.ToChar(); // ch == 0x78 or 120
60 * Float f1(j.ToFloat()); // f1 == 120.0
62 * Double d(120.100005L);
63 * Float f2(d.ToFloat()); // f2 == 120.10001
64 * Integer k(f2.ToInt()); // k == 120
68 class _OSP_EXPORT_ Number
73 * This destructor overrides Tizen::Base::Object::~Object().
77 virtual ~Number(void) { };
80 * Gets the @c signed @c char equivalent of the current instance of the %Number class.
84 * @return The @c signed @c char equivalent of the current instance
86 virtual char ToChar(void) const = 0;
89 * Gets the @c signed @c short equivalent of the current instance of the %Number class.
93 * @return The @c signed @c short equivalent of the current instance
95 virtual short ToShort(void) const = 0;
98 * Gets the @c signed @c int equivalent of the current instance of the %Number class.
102 * @return The @c signed @c int equivalent of the current instance
104 virtual int ToInt(void) const = 0;
107 * Gets the @c signed @c long equivalent of the current instance of the %Number class.
111 * @return The @c signed @c long equivalent of the current instance
113 virtual long ToLong(void) const = 0;
116 * Gets the @c signed @c long @c long equivalent of the current instance of the %Number class.
120 * @return The @c signed @c long @c long equivalent of the current instance
122 virtual long long ToLongLong(void) const = 0;
125 * Gets the @c signed @c float equivalent of the current instance of the %Number class.
129 * @return The @c signed @c float equivalent of the current instance
131 virtual float ToFloat(void) const = 0;
134 * Gets the @c signed @c double equivalent of the current instance of the %Number class.
138 * @return The @c signed @c double equivalent of the current instance
140 virtual double ToDouble(void) const = 0;
143 * Gets the string representing the value of the current instance of the %Number class.
147 * @return The string representing the value of the current instance
149 virtual String ToString(void) const = 0;
153 // This method is for internal use only. Using this method can cause behavioral, security-related,
154 // and consistency-related issues in the application.
155 // This method is reserved and may change its name at any time without prior notice.
159 virtual void Number_Reserved1(void) { }
162 // This method is for internal use only. Using this method can cause behavioral, security-related,
163 // and consistency-related issues in the application.
164 // This method is reserved and may change its name at any time without prior notice.
168 virtual void Number_Reserved2(void) { }
174 #endif // _FBASE_NUMBER_H_