Changeset 359
- Timestamp:
- 12/30/06 04:04:53 (16 years ago)
- Files:
-
- trunk/libfreebob/src/bebob/bebob_serialize.cpp (modified) (4 diffs)
- trunk/libfreebob/src/bebob/bebob_serialize.h (modified) (6 diffs)
- trunk/libfreebob/src/bebob/bebob_unittests.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libfreebob/src/bebob/bebob_serialize.cpp
r358 r359 68 68 bool 69 69 BeBoB::XMLSerialize::write( const char* pMemberName, 70 byte_t value ) 71 { 72 return write( pMemberName, static_cast<quadlet_t>( value ) ); 73 } 74 75 bool 76 BeBoB::XMLSerialize::write( const char* pMemberName, 77 quadlet_t value ) 70 long long value ) 78 71 79 72 { … … 92 85 xmlpp::Element* pElem = pNode->add_child( tokens[tokens.size() - 1] ); 93 86 char* valstr; 94 asprintf( &valstr, "% d", value );87 asprintf( &valstr, "%lld", value ); 95 88 pElem->set_child_text( valstr ); 96 89 free( valstr ); … … 162 155 bool 163 156 BeBoB::XMLDeserialize::read( const char* pMemberName, 164 byte_t& value ) 165 { 166 xmlpp::Node* pNode = m_parser.get_document()->get_root_node(); 167 168 xmlpp::NodeSet nodeSet = pNode->find( pMemberName ); 169 for ( xmlpp::NodeSet::iterator it = nodeSet.begin(); 170 it != nodeSet.end(); 171 ++it ) 172 { 173 const xmlpp::Element* pElement = dynamic_cast< const xmlpp::Element* >( *it ); 174 if ( pElement && pElement->has_child_text() ) { 175 char* tail; 176 value = strtol( pElement->get_child_text()->get_content().c_str(), &tail, 0 ); 177 return true; 178 } 179 return false; 180 } 181 182 return false; 183 } 184 185 bool 186 BeBoB::XMLDeserialize::read( const char* pMemberName, 187 quadlet_t& value ) 157 long long& value ) 188 158 189 159 { … … 198 168 if ( pElement && pElement->has_child_text() ) { 199 169 char* tail; 200 value = strtol ( pElement->get_child_text()->get_content().c_str(), &tail, 0 );170 value = strtoll( pElement->get_child_text()->get_content().c_str(), &tail, 0 ); 201 171 return true; 202 172 } trunk/libfreebob/src/bebob/bebob_serialize.h
r358 r359 22 22 #define bebob_serialize_h 23 23 24 #include <libraw1394/raw1394.h>25 24 #include <libxml++/libxml++.h> 26 25 … … 34 33 35 34 virtual bool write( const char* pMemberName, 36 byte_t value ) = 0; 37 virtual bool write( const char* pMemberName, 38 quadlet_t value ) = 0; 35 long long value ) = 0; 39 36 40 37 template <typename T> bool write( const char* pMemberName, T value ); … … 47 44 48 45 virtual bool read( const char* pMemberName, 49 byte_t& value ) = 0; 50 virtual bool read( const char* pMemberName, 51 quadlet_t& value ) = 0; 46 long long& value ) = 0; 52 47 53 48 template <typename T> bool read( const char* pMemberName, T& value ); … … 60 55 61 56 virtual bool write( const char* pMemberName, 62 byte_t value ); 63 virtual bool write( const char* pMemberName, 64 quadlet_t value ); 57 long long value ); 65 58 private: 66 59 Glib::ustring m_filepath; … … 76 69 77 70 virtual bool read( const char* pMemberName, 78 byte_t& value ); 79 virtual bool read( const char* pMemberName, 80 quadlet_t& value ); 71 long long& value ); 81 72 private: 82 73 Glib::ustring m_filepath; … … 89 80 template <typename T> bool IOSerialize::write( const char* pMemberName, T value ) 90 81 { 91 return write( pMemberName, static_cast< quadlet_t>( value ) );82 return write( pMemberName, static_cast<long long>( value ) ); 92 83 } 93 84 94 85 template <typename T> bool IODeserialize::read( const char* pMemberName, T& value ) 95 86 { 96 return read( pMemberName, reinterpret_cast<quadlet_t&>( value ) ); 87 long long tmp; 88 bool result = read( pMemberName, tmp ); 89 value = static_cast<T>( tmp ); 90 return result; 97 91 } 98 92 } trunk/libfreebob/src/bebob/bebob_unittests.cpp
r358 r359 20 20 21 21 #include "bebob_serialize.h" 22 #include <libraw1394/raw1394.h> 22 23 23 24 #include <stdio.h> … … 262 263 } 263 264 264 bool 265 static bool 266 testU2execute( U2_SerializeMe& sme1 ) 267 { 268 { 269 XMLSerialize xmlSerialize( "unittest_u2.xml" ); 270 if ( !sme1.serialize( xmlSerialize ) ) { 271 printf( "(serializing failed)" ); 272 return false; 273 } 274 } 275 276 U2_SerializeMe sme2; 277 278 { 279 XMLDeserialize xmlDeserialize( "unittest_u2.xml" ); 280 if ( !sme2.deserialize( xmlDeserialize ) ) { 281 printf( "(deserializing failed)" ); 282 return false; 283 } 284 } 285 286 bool result = sme1 == sme2; 287 if ( !result ) { 288 printf( "(wrong values)" ); 289 } 290 291 return result; 292 } 293 294 static bool 265 295 testU2() 266 296 { … … 274 304 sme1.m_unsigned_int = 5; 275 305 276 { 277 XMLSerialize xmlSerialize( "unittest_u2.xml" ); 278 if ( !sme1.serialize( xmlSerialize ) ) { 279 printf( "(serializing failed)" ); 280 return false; 281 } 282 } 283 284 U2_SerializeMe sme2; 285 286 { 287 XMLDeserialize xmlDeserialize( "unittest_u2.xml" ); 288 if ( !sme2.deserialize( xmlDeserialize ) ) { 289 printf( "(deserializing failed)" ); 290 return false; 291 } 292 } 293 294 bool result = sme1 == sme2; 295 if ( !result ) { 296 printf( "(wrong values)" ); 297 } 306 bool result; 307 result = testU2execute( sme1 ); 308 309 sme1.m_char = 0xff; 310 sme1.m_unsigned_char = 0xff; 311 sme1.m_short = 0xffff; 312 sme1.m_unsigned_short = 0xffff; 313 sme1.m_int = 0xffffffff; 314 sme1.m_unsigned_int = 0xffffffff; 315 316 result &= testU2execute( sme1 ); 317 298 318 return result; 299 319 }