UnsignedInt64 support
diff --git a/tinyxml2.h b/tinyxml2.h
index c7d4070..f9fd093 100755
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -625,7 +625,7 @@
static bool ToFloat( const char* str, float* value );
static bool ToDouble( const char* str, double* value );
static bool ToInt64(const char* str, int64_t* value);
-
+ static bool ToUnsigned64(const char* str, uint64_t* value);
// Changes what is serialized for a boolean value.
// Default to "true" and "false". Shouldn't be changed
// unless you have a special testing or compatibility need.
@@ -1164,6 +1164,12 @@
return i;
}
+ uint64_t Unsigned64Value() const {
+ uint64_t i = 0;
+ QueryUnsigned64Value(&i);
+ return i;
+ }
+
/// Query as an unsigned integer. See IntValue()
unsigned UnsignedValue() const {
unsigned i=0;
@@ -1198,6 +1204,8 @@
XMLError QueryUnsignedValue( unsigned int* value ) const;
/// See QueryIntValue
XMLError QueryInt64Value(int64_t* value) const;
+ /// See QueryIntValue
+ XMLError QueryUnsigned64Value(uint64_t* value) const;
/// See QueryIntValue
XMLError QueryBoolValue( bool* value ) const;
/// See QueryIntValue
@@ -1301,6 +1309,8 @@
unsigned UnsignedAttribute(const char* name, unsigned defaultValue = 0) const;
/// See IntAttribute()
int64_t Int64Attribute(const char* name, int64_t defaultValue = 0) const;
+ /// See IntAttribute()
+ uint64_t Unsigned64Attribute(const char* name, uint64_t defaultValue = 0) const;
/// See IntAttribute()
bool BoolAttribute(const char* name, bool defaultValue = false) const;
/// See IntAttribute()
@@ -1347,6 +1357,15 @@
return a->QueryInt64Value(value);
}
+ /// See QueryIntAttribute()
+ XMLError QueryUnsigned64Attribute(const char* name, uint64_t* value) const {
+ const XMLAttribute* a = FindAttribute(name);
+ if(!a) {
+ return XML_NO_ATTRIBUTE;
+ }
+ return a->QueryUnsigned64Value(value);
+ }
+
/// See QueryIntAttribute()
XMLError QueryBoolAttribute( const char* name, bool* value ) const {
const XMLAttribute* a = FindAttribute( name );