#include "ZoneWriting.h" #include "Writing/IZoneWriterFactory.h" #include #include #include bool ZoneWriting::WriteZone(std::ostream& stream, Zone* zone) { const auto start = std::chrono::high_resolution_clock::now(); const auto factory = IZoneWriterFactory::GetZoneWriterFactoryForGame(zone->m_game->GetId()); const auto zoneWriter = factory->CreateWriter(zone); if (zoneWriter == nullptr) { std::cerr << std::format("Could not create ZoneWriter for zone \"{}\".\n", zone->m_name); return false; } const auto result = zoneWriter->WriteZone(stream); const auto end = std::chrono::high_resolution_clock::now(); std::cout << std::format("Writing zone \"{}\" took {} ms.\n", zone->m_name, std::chrono::duration_cast(end - start).count()); return result; }