.. _program_listing_file_include_flamegpu_io_JSONStateWriter.h: Program Listing for File JSONStateWriter.h ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/flamegpu/io/JSONStateWriter.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef INCLUDE_FLAMEGPU_IO_JSONSTATEWRITER_H_ #define INCLUDE_FLAMEGPU_IO_JSONSTATEWRITER_H_ #include #include #include #include #include #include #include "flamegpu/io/StateWriter.h" #include "flamegpu/model/ModelDescription.h" #include "flamegpu/util/StringPair.h" namespace flamegpu { namespace detail { class CUDAMacroEnvironment; } namespace io { class JSONStateWriter : public StateWriter { public: JSONStateWriter(); bool isWriting() override { return writer.get(); } 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: bool config_written = false; bool stats_written = false; bool environment_written = false; bool macro_environment_written = false; bool agents_written = false; std::string outputPath; rapidjson::StringBuffer buffer; std::unique_ptr, rapidjson::UTF8<>, rapidjson::CrtAllocator, rapidjson::kWriteNanAndInfFlag>> writer; }; } // namespace io } // namespace flamegpu #endif // INCLUDE_FLAMEGPU_IO_JSONSTATEWRITER_H_