#pragma once #ifndef T_DATA_INCLUDED #define T_DATA_INCLUDED #include "tsmartpointer.h" #include "tfilepath.h" #undef DVAPI #undef DVVAR #ifdef TNZCORE_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif //------------------------------------------------------------------- class TData; #ifdef _WIN32 template class DVAPI TSmartPointerT; #endif typedef TSmartPointerT TDataP; //------------------------------------------------------------------- class DVAPI TData : public TSmartObject { DECLARE_CLASS_CODE protected: TData() : TSmartObject(m_classCode) {} public: virtual TDataP clone() const = 0; }; //------------------------------------------------------------------- class DVAPI TTextData final : public TData { TString m_text; public: TTextData(TString text) : m_text(text) {} TTextData(std::string text); TDataP clone() const override; TString getText() const { return m_text; } }; //------------------------------------------------------------------- #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable : 4251) #endif class DVAPI TFilePathListData final : public TData { std::vector m_filePaths; public: TFilePathListData(const std::vector &filePaths) : m_filePaths(filePaths) {} TDataP clone() const override; int getFilePathCount() const { return m_filePaths.size(); } TFilePath getFilePath(int i) const; }; #ifdef _MSC_VER #pragma warning(pop) #endif #endif