OpenAssetTools/src/ZoneWriting/Writing/IZoneWriterFactory.h

21 lines
677 B
C++

#pragma once
#include "Utils/ClassUtils.h"
#include "Zone/Zone.h"
#include "ZoneWriter.h"
class IZoneWriterFactory
{
public:
IZoneWriterFactory() = default;
virtual ~IZoneWriterFactory() = default;
IZoneWriterFactory(const IZoneWriterFactory& other) = default;
IZoneWriterFactory(IZoneWriterFactory&& other) noexcept = default;
IZoneWriterFactory& operator=(const IZoneWriterFactory& other) = default;
IZoneWriterFactory& operator=(IZoneWriterFactory&& other) noexcept = default;
_NODISCARD virtual std::unique_ptr<ZoneWriter> CreateWriter(Zone* zone) const = 0;
static const IZoneWriterFactory* GetZoneWriterFactoryForGame(GameId game);
};