Fix JSON parsing of large unsigned 64-bit integers

This commit is contained in:
Mike Naquin
2013-02-21 12:57:51 -06:00
parent ae26e45bad
commit 13a1a0b9a2
7 changed files with 152 additions and 17 deletions

View File

@@ -108,11 +108,17 @@ public:
#if defined(POCO_HAVE_INT64)
virtual Int64 asInteger64() const;
/// Returns a 64-bit integer representation of the token.
virtual UInt64 asUnsignedInteger64() const;
/// Returns an unsigned 64-bit integer representation of the token.
#endif
virtual int asInteger() const;
/// Returns an integer representation of the token.
virtual unsigned asUnsignedInteger() const;
/// Returns an unsigned integer representation of the token.
virtual double asFloat() const;
/// Returns a floating-point representation of the token.

View File

@@ -81,6 +81,12 @@ Int64 Token::asInteger64() const
{
return NumberParser::parse64(_value);
}
UInt64 Token::asUnsignedInteger64() const
{
return NumberParser::parseUnsigned64(_value);
}
#endif
@@ -90,6 +96,12 @@ int Token::asInteger() const
}
unsigned Token::asUnsignedInteger() const
{
return NumberParser::parseUnsigned(_value);
}
double Token::asFloat() const
{
return NumberParser::parseFloat(_value);