uint8_t hexToUnsigned(uint8_t u8_upperChar, uint8_t u8_lowerChar) { static uint8_t u8_converted; u8_upperChar = toUnsignedInt(u8_upperChar); u8_lowerChar = toUnsignedInt(u8_lowerChar); u8_converted = (16 * (uint8_t) u8_upperChar); u8_converted = u8_converted + (uint8_t) u8_lowerChar; return u8_converted; }
// here we use DataTime instead of QT's built-in time conversion // since the latter does not properly handle fractions of seconds // in the ISO8601 specification. QString Soprano::LiteralValue::toString() const { if ( d ) { if ( !d->stringCacheValid ) { if( isInt() ) d->stringCache = QString::number( toInt() ); else if( isInt64() ) d->stringCache = QString::number( toInt64() ); else if( isUnsignedInt() ) d->stringCache = QString::number( toUnsignedInt() ); else if( isUnsignedInt64() ) d->stringCache = QString::number( toUnsignedInt64() ); else if( isBool() ) d->stringCache = ( toBool() ? QString("true") : QString("false" ) ); else if( isDouble() ) // FIXME: decide on a proper double encoding or check if there is one in xml schema d->stringCache = QString::number( toDouble(), 'e', 10 ); else if( isDate() ) d->stringCache = DateTime::toString( toDate() ); else if( isTime() ) d->stringCache = DateTime::toString( toTime() ); else if( isDateTime() ) d->stringCache = DateTime::toString( toDateTime() ); else if ( isByteArray() ) d->stringCache = QString::fromAscii( toByteArray().toBase64() ); else d->stringCache = d->value.toString(); d->stringCacheValid = true; } return d->stringCache; } else { return QString(); } }