OpenDDLParser: latest greatest.

This commit is contained in:
Kim Kulling
2015-10-31 09:43:34 +01:00
parent 6f75ea5702
commit eadc6116c0
9 changed files with 466 additions and 76 deletions

View File

@@ -95,7 +95,7 @@ bool Value::Iterator::operator == ( const Iterator &rhs ) const {
}
Value *Value::Iterator::operator->( ) const {
if( nullptr == m_current ) {
if(ddl_nullptr == m_current ) {
return ddl_nullptr;
}
return m_current;
@@ -120,7 +120,6 @@ void Value::setBool( bool value ) {
bool Value::getBool() {
assert( ddl_bool == m_type );
return ( *m_data == 1 );
}
@@ -141,7 +140,9 @@ void Value::setInt16( int16 value ) {
int16 Value::getInt16() {
assert( ddl_int16 == m_type );
return ( int16 ) ( *m_data );
int16 i;
::memcpy( &i, m_data, m_size );
return i;
}
void Value::setInt32( int32 value ) {
@@ -151,16 +152,21 @@ void Value::setInt32( int32 value ) {
int32 Value::getInt32() {
assert( ddl_int32 == m_type );
return ( int32 ) ( *m_data );
int32 i;
::memcpy( &i, m_data, m_size );
return i;
}
void Value::setInt64( int64 value ) {
assert( ddl_int32 == m_type );
assert( ddl_int64 == m_type );
::memcpy( m_data, &value, m_size );
}
int64 Value::getInt64() {
return ( int64 ) ( *m_data );
assert( ddl_int64 == m_type );
int64 i;
::memcpy( &i, m_data, m_size );
return i;
}
void Value::setUnsignedInt8( uint8 value ) {
@@ -170,7 +176,9 @@ void Value::setUnsignedInt8( uint8 value ) {
uint8 Value::getUnsignedInt8() const {
assert( ddl_unsigned_int8 == m_type );
return ( uint8 ) ( *m_data );
uint8 i;
::memcpy( &i, m_data, m_size );
return i;
}
void Value::setUnsignedInt16( uint16 value ) {
@@ -180,7 +188,9 @@ void Value::setUnsignedInt16( uint16 value ) {
uint16 Value::getUnsignedInt16() const {
assert( ddl_unsigned_int16 == m_type );
return ( uint8 ) ( *m_data );
uint16 i;
::memcpy( &i, m_data, m_size );
return i;
}
void Value::setUnsignedInt32( uint32 value ) {
@@ -190,7 +200,9 @@ void Value::setUnsignedInt32( uint32 value ) {
uint32 Value::getUnsignedInt32() const {
assert( ddl_unsigned_int32 == m_type );
return ( uint8 ) ( *m_data );
uint32 i;
::memcpy( &i, m_data, m_size );
return i;
}
void Value::setUnsignedInt64( uint64 value ) {
@@ -200,7 +212,9 @@ void Value::setUnsignedInt64( uint64 value ) {
uint64 Value::getUnsignedInt64() const {
assert( ddl_unsigned_int64 == m_type );
return ( uint64 ) ( *m_data );
uint64 i;
::memcpy( &i, m_data, m_size );
return i;
}
void Value::setFloat( float value ) {
@@ -226,6 +240,7 @@ void Value::setDouble( double value ) {
}
double Value::getDouble() const {
assert( ddl_double == m_type );
double v;
::memcpy( &v, m_data, m_size );
return v;
@@ -237,6 +252,7 @@ void Value::setString( const std::string &str ) {
m_data[ str.size() ] = '\0';
}
const char *Value::getString() const {
assert( ddl_string == m_type );
return (const char*) m_data;
}
@@ -312,22 +328,25 @@ Value *ValueAllocator::allocPrimData( Value::ValueType type, size_t len ) {
data->m_size = sizeof( bool );
break;
case Value::ddl_int8:
data->m_size = sizeof( char );
data->m_size = sizeof( int8 );
break;
case Value::ddl_int16:
data->m_size = sizeof( short );
data->m_size = sizeof( int16 );
break;
case Value::ddl_int32:
data->m_size = sizeof( int );
data->m_size = sizeof( int32 );
break;
case Value::ddl_int64:
data->m_size = sizeof( int64 );
break;
case Value::ddl_unsigned_int8:
data->m_size = sizeof( unsigned char );
data->m_size = sizeof( uint8 );
break;
case Value::ddl_unsigned_int16:
data->m_size = sizeof( uint16 );
break;
case Value::ddl_unsigned_int32:
data->m_size = sizeof( unsigned int );
data->m_size = sizeof( uint32 );
break;
case Value::ddl_unsigned_int64:
data->m_size = sizeof( uint64 );