nod/include/nod/DiscGCN.hpp

37 lines
1.0 KiB
C++
Raw Normal View History

2018-10-06 20:39:24 -07:00
#pragma once
2015-06-26 12:30:03 -07:00
#include "nod/DiscBase.hpp"
2015-06-26 12:30:03 -07:00
2018-12-07 21:21:47 -08:00
namespace nod {
class DiscBuilderGCN;
2015-06-26 12:30:03 -07:00
2018-12-07 21:21:47 -08:00
class DiscGCN : public DiscBase {
friend class DiscMergerGCN;
DiscBuilderGCN makeMergeBuilder(std::string_view outPath, FProgress progressCB);
2016-01-20 22:30:37 -08:00
public:
DiscGCN(std::unique_ptr<IDiscIO>&& dio, bool& err);
bool extractDiscHeaderFiles(std::string_view path, const ExtractionContext& ctx) const override;
};
2018-12-07 21:21:47 -08:00
class DiscBuilderGCN : public DiscBuilderBase {
friend class DiscMergerGCN;
public:
DiscBuilderGCN(std::string_view outPath, FProgress progressCB);
EBuildResult buildFromDirectory(std::string_view dirIn);
static std::optional<uint64_t> CalculateTotalSizeRequired(std::string_view dirIn);
2015-06-26 12:30:03 -07:00
};
2018-12-07 21:21:47 -08:00
class DiscMergerGCN {
DiscGCN& m_sourceDisc;
DiscBuilderGCN m_builder;
2015-06-26 12:30:03 -07:00
2018-12-07 21:21:47 -08:00
public:
DiscMergerGCN(std::string_view outPath, DiscGCN& sourceDisc, FProgress progressCB);
EBuildResult mergeFromDirectory(std::string_view dirIn);
static std::optional<uint64_t> CalculateTotalSizeRequired(DiscGCN& sourceDisc, std::string_view dirIn);
2018-12-07 21:21:47 -08:00
};
2015-06-26 12:30:03 -07:00
2018-12-07 21:21:47 -08:00
} // namespace nod