#include "Precompiled.h" #include "RakiEngine/Data/MemoryBlock/MemoryBlock.h" #include "RakiEngine/Data/Serialization/Serializer.h" #include "RakiEngine/Data/Serialization/SerializedObject.h" #include "RakiEngine/Data/Stream/MemoryStream/MemoryStream.h" #include "RakiEngine/Initializer/TestInitializer.h" namespace raki { class TestObject : public SerializedObject { public: virtual void serialize( Serializer & serializer ) { serializer % a; serializer % b; serializer % c; serializer % d; } int a; u64 b; int c; u64 d; }; void TestSerialization() { TestInitializer initializer; RAKI_OUTPUT("entering TestSerialization...\n"); /* raki::ms_stlAllocator = system.getAllocator(); { std::list > intList; intList.push_back( 3 ); intList.push_back( 5 ); } */ MemoryBlock memBlock( 0x1000 ); MemoryStream memStream( &memBlock, false ); //int intParam = 3; Serializer serializer( &memStream ); serializer.setIsWriting(); TestObject object; object.a = 1; object.b = 2; object.c = 3; object.d = 4; object.serialize( serializer ); object.a = -1; object.b = (u64)-2; object.c = -3; object.d = (u64)-4; serializer.setIsReading(); memStream.seekBeginning(); object.serialize( serializer ); RAKI_ASSERT( object.a == 1 ); RAKI_ASSERT( object.b == 2 ); RAKI_ASSERT( object.c == 3 ); RAKI_ASSERT( object.d == 4 ); RAKI_OUTPUT("leaving TestSerialization...\n"); } } // namespace raki #if defined ( RAKI_USING_XAUDIO2 ) int _tmain(int argc, _TCHAR* argv[]) #else // RAKI_USING_XAUDIO2 int main( int argc, char *argv[] ) #endif // RAKI_USING_XAUDIO2 { raki::TestSerialization(); return 0; }