Exteor/include/xtr/io/ModelDataExchange.h

36 lines
974 B
C
Raw Normal View History

2024-06-07 20:30:06 +03:00
#pragma once
#include "office/ExcelWrapper.h"
#include "ccl/rslang/SDataCompact.h"
namespace xtr::io {
//! RSModel data exchange
class RSMDataX {
protected:
MSO::Excel::ExcelWrapper xlWrapper{};
MSO::Excel::EXLWorkbook workingWb{ nullptr };
MSO::Excel::EXLWorksheet workingWs{ nullptr };
public:
RSMDataX(const RSMDataX&) = delete;
RSMDataX& operator=(const RSMDataX&) = delete;
protected:
~RSMDataX() = default;
RSMDataX() = default;
public:
[[nodiscard]] static RSMDataX& Instance();
static BOOL ExportModel(const ccl::semantic::RSModel& model);
static BOOL ExportDataFor(EntityUID target, const ccl::semantic::RSModel& model);
[[nodiscard]] static std::optional<ccl::object::SDCompact>
ImportStructured(const ccl::semantic::RSModel& model, const ccl::rslang::Typification& structure);
[[nodiscard]] static std::optional<ccl::semantic::TextInterpretation>
ImportText(const ccl::semantic::RSModel& model);
};
} // namespace xtr::io