43 lines
747 B
C
43 lines
747 B
C
|
#pragma once
|
|||
|
|
|||
|
#include <QJsonObject>
|
|||
|
#include <memory>
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD>л<EFBFBD>ʵ<EFBFBD><CAB5>
|
|||
|
/// </summary>
|
|||
|
class Serializable {
|
|||
|
public:
|
|||
|
virtual ~Serializable() = default;
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="obj"></param>
|
|||
|
virtual void loadFrom(const QJsonObject& obj) = 0;
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD>л<EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <param name="obj"></param>
|
|||
|
virtual void saveTo(QJsonObject& obj) const = 0;
|
|||
|
/// <summary>
|
|||
|
/// <20><><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
virtual std::shared_ptr<Serializable> newDefault() const = 0;
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// <20>ڲ<EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
/// </summary>
|
|||
|
enum class DataType {
|
|||
|
TextString,
|
|||
|
Integer, // <20><><EFBFBD><EFBFBD>
|
|||
|
Unsigned,// <20><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Flt32,
|
|||
|
Dbl64,
|
|||
|
LIST_COLLECTION,
|
|||
|
UNION_COMBINATE,
|
|||
|
};
|