tool/DataTypeHandler.cpp
changeset 1893 9a136c0c30a2
parent 1888 02aedba35b94
child 2122 23414e7559de
child 2148 289c42960b04
equal deleted inserted replaced
1892:0c254f0e7f7d 1893:9a136c0c30a2
   267         const DataType *type,
   267         const DataType *type,
   268         void *data,
   268         void *data,
   269         size_t dataSize
   269         size_t dataSize
   270         )
   270         )
   271 { 
   271 { 
   272     if (type->byteSize && dataSize != type->byteSize) {
   272     uint16_t typeCode;
   273         stringstream err;
   273 
   274         err << "Data type mismatch. Expected " << type->name
   274     if (type) {
   275             << " with " << type->byteSize << " byte, but got "
   275         if (type->byteSize && dataSize != type->byteSize) {
   276             << dataSize << " byte.";
   276             stringstream err;
   277         throw SizeException(err.str());
   277             err << "Data type mismatch. Expected " << type->name
       
   278                 << " with " << type->byteSize << " byte, but got "
       
   279                 << dataSize << " byte.";
       
   280             throw SizeException(err.str());
       
   281         }
       
   282         typeCode = type->code;
       
   283     } else {
       
   284         typeCode = 0xffff; // raw data
   278     }
   285     }
   279 
   286 
   280     o << setfill('0');
   287     o << setfill('0');
   281 
   288 
   282     switch (type->code) {
   289     switch (type->code) {