2 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // Licensed under the Apache License, Version 2.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
19 * @brief This is the header file for the %Number class.
21 * This header file contains the declarations and definitions of the %Number class. @n
22 * This class is the abstract base class of all wrapped numeric types.
24 #ifndef _FBASE_NUMBER_H_
25 #define _FBASE_NUMBER_H_
27 #include <FBaseObject.h>
28 #include <FBaseString.h>
31 namespace Tizen { namespace Base
35 * @brief This class is the base class of all wrapped numeric types.
39 * The %Number class is the abstract base class of all wrapped numeric classes.
40 * The subclasses of %Number must provide methods to convert the represented
41 * numeric value to @c char, @c short, @c int, @c long, @c float, and @c double.
43 * The following example demonstrates how to use the %Number class.
49 * using namespace Tizen::Base;
52 * MyClass::NumberSample(void)
54 * Long ld(0x12345678L);
55 * int i = ld.Toint(); // i == 0x5678
56 * char ch = ld.ToChar(); // ch == 0x78 or 120
59 * Float f1(j.ToFloat()); // f1 == 120.0
61 * Double d(120.100005L);
62 * Float f2(d.ToFloat()); // f2 == 120.10001
63 * Integer k(f2.ToInt()); // k == 120
67 class _OSP_EXPORT_ Number
72 * This destructor overrides Tizen::Base::Object::~Object().
76 virtual ~Number(void) { };
79 * Gets the @c signed @c char equivalent of the current instance of the %Number class.
83 * @return The @c signed @c char equivalent of the current instance
85 virtual char ToChar(void) const = 0;
88 * Gets the @c signed @c short equivalent of the current instance of the %Number class.
92 * @return The @c signed @c short equivalent of the current instance
94 virtual short ToShort(void) const = 0;
97 * Gets the @c signed @c int equivalent of the current instance of the %Number class.
101 * @return The @c signed @c int equivalent of the current instance
103 virtual int ToInt(void) const = 0;
106 * Gets the @c signed @c long equivalent of the current instance of the %Number class.
110 * @return The @c signed @c long equivalent of the current instance
112 virtual long ToLong(void) const = 0;
115 * Gets the @c signed @c long @c long equivalent of the current instance of the %Number class.
119 * @return The @c signed @c long @c long equivalent of the current instance
121 virtual long long ToLongLong(void) const = 0;
124 * Gets the @c signed @c float equivalent of the current instance of the %Number class.
128 * @return The @c signed @c float equivalent of the current instance
130 virtual float ToFloat(void) const = 0;
133 * Gets the @c signed @c double equivalent of the current instance of the %Number class.
137 * @return The @c signed @c double equivalent of the current instance
139 virtual double ToDouble(void) const = 0;
142 * Gets the string representing the value of the current instance of the %Number class.
146 * @return The string representing the value of the current instance
148 virtual String ToString(void) const = 0;
152 // This method is for internal use only. Using this method can cause behavioral, security-related,
153 // and consistency-related issues in the application.
154 // This method is reserved and may change its name at any time without prior notice.
158 virtual void Number_Reserved1(void) { }
161 // This method is for internal use only. Using this method can cause behavioral, security-related,
162 // and consistency-related issues in the application.
163 // This method is reserved and may change its name at any time without prior notice.
167 virtual void Number_Reserved2(void) { }
173 #endif // _FBASE_NUMBER_H_