#pragma once #include "Parsing/IParserLineStream.h" #include "StructuredDataDef/CommonStructuredDataDef.h" #include #include #include class StructuredDataDefReader { public: using include_callback_t = std::function(const std::string& filename, const std::string& sourceFile)>; private: std::string m_file_name; IParserLineStream* m_stream; std::vector> m_open_streams; bool OpenBaseStream(std::istream& stream, include_callback_t includeCallback); void SetupStreamProxies(); public: StructuredDataDefReader(std::istream& stream, std::string fileName); StructuredDataDefReader(std::istream& stream, std::string fileName, include_callback_t includeCallback); std::vector> ReadStructureDataDefs(bool& success); };