/src/Core_Serialization/Stream.cpp

http://github.com/Akranar/daguerreo · C++ · 44 lines · 35 code · 9 blank · 0 comment · 4 complexity · 3df2dff7a517086dabaf8a21ed1e01d0 MD5 · raw file

  1. #include "Stream.h"
  2. #include <Core_Assert.h>
  3. Stream & Stream::operator << (const Serializable * val)
  4. {
  5. Save(val);
  6. return *this;
  7. }
  8. bool Stream::ShouldSerialize(const Serializable * val_address)
  9. {
  10. if (!val_address) return false;
  11. std::pair<std::set<const Serializable *>::iterator, bool> result = serialized_pointed_objects.insert(val_address);
  12. return result.second;
  13. }
  14. bool Stream::ShouldUnserialize(const Serializable * old_address, Serializable *& rtn_new_address)
  15. {
  16. if (!old_address)
  17. {
  18. rtn_new_address = 0;
  19. return false;
  20. }
  21. std::map<const Serializable *, Serializable *>::iterator result = old_map_new.find(old_address);
  22. if (result != old_map_new.end())
  23. {
  24. rtn_new_address = result->second;
  25. return false;
  26. }
  27. else
  28. {
  29. return true;
  30. }
  31. }
  32. void Stream::SetOldToNew(const Serializable * old_address, Serializable * new_address)
  33. {
  34. old_map_new[old_address] = new_address;
  35. }