Advertisement
Guest User

Untitled

a guest
Jan 25th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. /** serializes SGObject parameters to Archive with Cereal
  2. *
  3. * @param ar Archive
  4. */
  5. template <class Archive>
  6. void cereal_save(Archive& ar) const
  7. {
  8. ar(m_generic, m_hash);
  9. const std::set<std::string> parameter_names = this->parameter_names();
  10. ar(parameter_names.size());
  11. for (const auto& name: parameter_names)
  12. {
  13. BaseTag tag(name);
  14. AnyParameter parameter = this->get_parameter(tag);
  15. ar(name, parameter);
  16. }
  17. }
  18.  
  19. /** loads SGObject parameters from Archive with Cereal
  20. *
  21. * @param ar Archive
  22. */
  23. template <class Archive>
  24. void cereal_load(Archive& ar)
  25. {
  26. ar(m_generic, m_hash);
  27. size_t num_tags;
  28. ar(num_tags);
  29. for (auto i = 0; i < num_tags; ++i)
  30. {
  31. std::string name;
  32. AnyParameter parameter;
  33. ar(name, parameter);
  34. BaseTag tag(name);
  35. this->create_parameter(tag, parameter);
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement