mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-07-11 13:41:50 +00:00
chore: parse includes and assetlists while parsing zone definition
This commit is contained in:
63
src/ObjCommon/SearchPath/ISearchPath.h
Normal file
63
src/ObjCommon/SearchPath/ISearchPath.h
Normal file
@ -0,0 +1,63 @@
|
||||
#pragma once
|
||||
|
||||
#include "SearchPathSearchOptions.h"
|
||||
#include "Utils/ClassUtils.h"
|
||||
|
||||
#include <cstdint>
|
||||
#include <functional>
|
||||
#include <istream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
class SearchPathOpenFile
|
||||
{
|
||||
public:
|
||||
std::unique_ptr<std::istream> m_stream;
|
||||
int64_t m_length;
|
||||
|
||||
_NODISCARD bool IsOpen() const;
|
||||
|
||||
SearchPathOpenFile();
|
||||
SearchPathOpenFile(std::unique_ptr<std::istream> stream, int64_t length);
|
||||
};
|
||||
|
||||
class ISearchPath
|
||||
{
|
||||
public:
|
||||
ISearchPath() = default;
|
||||
virtual ~ISearchPath() = default;
|
||||
|
||||
ISearchPath(const ISearchPath& other) = default;
|
||||
ISearchPath(ISearchPath&& other) noexcept = default;
|
||||
ISearchPath& operator=(const ISearchPath& other) = default;
|
||||
ISearchPath& operator=(ISearchPath&& other) noexcept = default;
|
||||
|
||||
/**
|
||||
* \brief Opens a file relative to the search path.
|
||||
* \param fileName The relative path to the file to open.
|
||||
* \return A pointer to an \c IFile object to read the found file or \c nullptr when no file could be found.
|
||||
*/
|
||||
virtual SearchPathOpenFile Open(const std::string& fileName) = 0;
|
||||
|
||||
/**
|
||||
* \brief Returns the path to the search path.
|
||||
* \return The path to the search path.
|
||||
*/
|
||||
virtual const std::string& GetPath() = 0;
|
||||
|
||||
/**
|
||||
* \brief Iterates through all files of the search path.
|
||||
* \param callback The callback to call for each found file with it's path relative to the search path.
|
||||
* \param options Options that modify the search.
|
||||
*/
|
||||
virtual void Find(const SearchPathSearchOptions& options, const std::function<void(const std::string&)>& callback) = 0;
|
||||
|
||||
/**
|
||||
* \brief Iterates through all files of the search path.
|
||||
* \param callback The callback to call for each found file with it's path relative to the search path.
|
||||
*/
|
||||
void Find(const std::function<void(const std::string&)>& callback)
|
||||
{
|
||||
Find(SearchPathSearchOptions(), callback);
|
||||
}
|
||||
};
|
Reference in New Issue
Block a user