PenetrateBase/PenetrateBasic/data_types.h

50 lines
1.5 KiB
C
Raw Normal View History

2024-11-11 08:29:59 +00:00
#pragma once
#include <QString>
namespace datas {
class IDataArray;
class IDataObject {
public:
virtual ~IDataObject() = default;
2024-11-16 05:11:57 +00:00
virtual bool isValid() const = 0;
2024-11-11 08:29:59 +00:00
virtual bool isArray() const = 0;
virtual IDataArray toArray() = 0;
2024-11-16 05:11:57 +00:00
virtual bool getBool(const QString& key) const = 0;
virtual double getDouble(const QString& key) const = 0;
virtual int32_t getInt32(const QString& key) const = 0;
virtual int64_t getInt64(const QString& key) const = 0;
virtual QString getString(const QString& key) const = 0;
virtual IDataObject getObject(const QString& key) const = 0;
2024-11-11 08:29:59 +00:00
virtual void setBool(const QString& key, bool value) = 0;
virtual void setDouble(const QString& key, double value) = 0;
virtual void setInt32(const QString& key, int32_t value) = 0;
virtual void setInt64(const QString& key, int64_t value) = 0;
virtual void setString(const QString& key, const QString& value) = 0;
virtual void setObject(const QString& key, IDataObject value) = 0;
2024-11-16 05:11:57 +00:00
virtual QString toText() const = 0;
virtual void loadFrom(const QString &text) = 0;
2024-11-11 08:29:59 +00:00
};
class IDataArray : public IDataObject {
public:
virtual ~IDataArray() = default;
2024-11-16 05:11:57 +00:00
virtual bool isValid() const = 0;
2024-11-11 08:29:59 +00:00
virtual int32_t size() const = 0;
2024-11-16 05:11:57 +00:00
virtual IDataObject get(int index) const = 0;
2024-11-11 08:29:59 +00:00
virtual void insert(int index, IDataObject value) = 0;
virtual void append(IDataObject value) = 0;
};
template<typename T> void dataSet(IDataObject& object, const QString& key, T value);
template<typename T> T dataGet(IDataObject& object, const QString& key);
}