[DEV] add get type of number (BAD)

This commit is contained in:
Edouard DUPIN 2016-06-13 21:11:41 +02:00
parent bae189269b
commit 59ccccdbdc
3 changed files with 18 additions and 1 deletions

View File

@ -81,3 +81,13 @@ int64_t ejson::Number::getI64(int64_t _errorValue) const {
}
return static_cast<ejson::internal::Number*>(m_data.get())->getI64();
}
ejson::internal::Number::type ejson::Number::getType() const {
if (m_data == nullptr) {
EJSON_ERROR("Can not get (nullptr) ...");
return ejson::internal::Number::type::tDouble;
}
return static_cast<ejson::internal::Number*>(m_data.get())->getType();
}

View File

@ -70,6 +70,8 @@ namespace ejson {
* @return The integer number registered
*/
int64_t getI64(int64_t _errorValue=0) const;
ejson::internal::Number::type getType() const;
};
}

View File

@ -31,18 +31,23 @@ namespace ejson {
static ememory::SharedPtr<Number> create(uint64_t _value=0);
static ememory::SharedPtr<Number> create(int64_t _value);
static ememory::SharedPtr<Number> create(double _value);
protected:
public:
enum class type {
tDouble,
tInt,
tUint,
};
protected:
type m_typeNumber;
union {
double m_value; //!< value of the node
uint64_t m_valueU64; //!< value of the node
int64_t m_valueI64; //!< value of the node
};
public:
ejson::internal::Number::type getType() const {
return m_typeNumber;
}
public:
/**
* @brief set the value of the node.