.. _program_listing_file_include_flamegpu_io_XMLStateWriter.h: Program Listing for File XMLStateWriter.h ========================================= |exhale_lsh| :ref:`Return to documentation for file ` (``include/flamegpu/io/XMLStateWriter.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef INCLUDE_FLAMEGPU_IO_XMLSTATEWRITER_H_ #define INCLUDE_FLAMEGPU_IO_XMLSTATEWRITER_H_ #include #include #include #include "flamegpu/io/StateWriter.h" #include "flamegpu/model/ModelDescription.h" #include "flamegpu/util/StringPair.h" namespace tinyxml2 { class XMLDocument; class XMLNode; } namespace flamegpu { namespace io { class XMLStateWriter : public StateWriter { public: XMLStateWriter(); bool isWriting() override { return doc || pRoot; } void beginWrite(const std::string &output_file, bool pretty_print) override; void endWrite() override; void writeConfig(const Simulation *sim_instance) override; void writeStats(unsigned int iterations) override; void writeEnvironment(const std::shared_ptr& env_manager) override; void writeMacroEnvironment(const std::shared_ptr& macro_env, std::initializer_list filter = {}) override; void writeAgents(const util::StringPairUnorderedMap>& agents_map) override; private: std::unique_ptr doc; tinyxml2::XMLNode* pRoot = nullptr; bool config_written = false; bool stats_written = false; bool environment_written = false; bool macro_environment_written = false; bool agents_written = false; std::string outputPath; bool prettyPrint; }; } // namespace io } // namespace flamegpu #endif // INCLUDE_FLAMEGPU_IO_XMLSTATEWRITER_H_