mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-11-07 01:01:59 +00:00
refactor: hide implementation of loading steps inside file
This commit is contained in:
31 files changed
+649
-477
No files matched your search
@@ -2,15 +2,33 @@
|
||||
|
||||
#include <cassert>
|
||||
|
||||
StepAddProcessor::StepAddProcessor(std::unique_ptr<StreamProcessor> streamProcessor)
|
||||
: m_stream_processor(std::move(streamProcessor))
|
||||
namespace
|
||||
{
|
||||
}
|
||||
class StepAddProcessor final : public ILoadingStep
|
||||
{
|
||||
public:
|
||||
explicit StepAddProcessor(std::unique_ptr<StreamProcessor> streamProcessor)
|
||||
: m_stream_processor(std::move(streamProcessor))
|
||||
{
|
||||
}
|
||||
|
||||
void StepAddProcessor::PerformStep(ZoneLoader& zoneLoader, ILoadingStream& stream)
|
||||
void PerformStep(ZoneLoader& zoneLoader, ILoadingStream& stream) override
|
||||
{
|
||||
assert(m_stream_processor != nullptr);
|
||||
|
||||
zoneLoader.AddStreamProcessor(std::move(m_stream_processor));
|
||||
m_stream_processor = nullptr;
|
||||
}
|
||||
|
||||
private:
|
||||
std::unique_ptr<StreamProcessor> m_stream_processor;
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace step
|
||||
{
|
||||
assert(m_stream_processor != nullptr);
|
||||
|
||||
zoneLoader.AddStreamProcessor(std::move(m_stream_processor));
|
||||
m_stream_processor = nullptr;
|
||||
}
|
||||
std::unique_ptr<ILoadingStep> CreateStepAddProcessor(std::unique_ptr<StreamProcessor> streamProcessor)
|
||||
{
|
||||
return std::make_unique<StepAddProcessor>(std::move(streamProcessor));
|
||||
}
|
||||
} // namespace step
|
||||
Reference in new issue
Block a user