1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #pragma once
- #ifndef LIBALMOND_SERIALIZE_H
- #define LIBALMOND_SERIALIZE_H
- #include <MandelUtil.h>
- #include "Gradient.h"
- #include <string>
- namespace tinyxml2
- {
- class XMLElement;
- class XMLDocument;
- }
- namespace alm
- {
- struct ImageView;
- template<typename T>
- tinyxml2::XMLElement* serialize(tinyxml2::XMLDocument& doc, const T&);
- template<typename T>
- std::string toXml(const T&);
- template<typename T>
- T deserialize(tinyxml2::XMLElement* xml);
- template<typename T>
- T fromXml(const std::string& xml);
- // specializations
- template<>
- tinyxml2::XMLElement* serialize<Gradient>(tinyxml2::XMLDocument& doc, const Gradient&);
- template<>
- std::string toXml<Gradient>(const Gradient&);
- template<>
- Gradient deserialize<Gradient>(tinyxml2::XMLElement* xml);
- template<>
- Gradient fromXml<Gradient>(const std::string& xml);
- }
- struct alm::ImageView
- {
- mnd::MandelInfo view;
- Gradient gradient;
- std::string toXml(void) const;
- static ImageView fromXml(const std::string& xml);
- };
- #endif // LIBALMOND_SERIALIZE_H
|