40 lines
1.5 KiB
C++
40 lines
1.5 KiB
C++
#pragma once
|
|
|
|
namespace xtr {
|
|
|
|
namespace doc { class RSFormDoc; } // namespace doc
|
|
|
|
class ExtSourceManager final : public ccl::SourceManager {
|
|
public:
|
|
[[nodiscard]] bool TestDomain(const ccl::src::Descriptor& global,
|
|
const std::u8string& domain) const override;
|
|
|
|
[[nodiscard]] ccl::src::Descriptor
|
|
Convert2Local(const ccl::src::Descriptor& global,
|
|
const std::u8string& domain) const override;
|
|
|
|
[[nodiscard]] ccl::src::Descriptor
|
|
Convert2Global(const ccl::src::Descriptor& local,
|
|
const std::u8string& domain) const override;
|
|
|
|
[[nodiscard]] ccl::src::Descriptor
|
|
CreateLocalDesc(ccl::src::SrcType type,
|
|
std::u8string localName) const override;
|
|
[[nodiscard]] ccl::src::Source* Find(const ccl::src::Descriptor& desc) override;
|
|
[[nodiscard]] ccl::src::Descriptor GetDescriptor(const ccl::src::Source& src) const override;
|
|
bool ChangeDescriptor(const ccl::src::Descriptor& desc, const ccl::src::Descriptor& newDesc) override;
|
|
|
|
[[nodiscard]] ccl::src::Source* CreateNew(const ccl::src::Descriptor& desc) override;
|
|
[[nodiscard]] ccl::src::Source* Open(const ccl::src::Descriptor& desc) override;
|
|
void Close(ccl::src::Source& src) override;
|
|
bool SaveState(ccl::src::Source& src) override;
|
|
void Discard(const ccl::src::Descriptor& desc) override;
|
|
|
|
private:
|
|
static const doc::RSFormDoc& RSCast(const ccl::src::Source& src);
|
|
static doc::RSFormDoc& RSCast(ccl::src::Source& src);
|
|
|
|
[[nodiscard]] static std::u8string FixFilename(const std::u8string& name);
|
|
};
|
|
|
|
} // namespace xtr
|