Serialize.h 924 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #ifndef LIBALMOND_SERIALIZE_H
  3. #define LIBALMOND_SERIALIZE_H
  4. #include <MandelUtil.h>
  5. #include "Gradient.h"
  6. #include <string>
  7. namespace tinyxml2
  8. {
  9. struct XMLElement;
  10. }
  11. namespace alm
  12. {
  13. struct ImageView;
  14. Gradient deserializeGradient(tinyxml2::XMLElement* xml);
  15. std::unique_ptr<tinyxml2::XMLElement> serializeGradient(const Gradient& g);
  16. Gradient loadGradient(const std::string& xml);
  17. std::string saveGradient(const Gradient& g);
  18. ImageView deserializeImageView(tinyxml2::XMLElement* xml);
  19. std::unique_ptr<tinyxml2::XMLElement> serializeImageView(const ImageView& iv);
  20. ImageView loadImageView(const std::string& xml);
  21. std::string saveImageView(const ImageView& iv);
  22. }
  23. struct alm::ImageView
  24. {
  25. mnd::MandelInfo view;
  26. Gradient gradient;
  27. std::string toXml(void) const;
  28. static ImageView fromXml(const std::string& xml);
  29. };
  30. #endif // LIBALMOND_SERIALIZE_H