IEngine.h 723 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include <deque>
  3. #include "FileDefinition.h"
  4. #include "exports.h"
  5. namespace craftlab::fakeraid
  6. {
  7. class IEngine
  8. {
  9. public:
  10. virtual ~IEngine() {};
  11. virtual void DirExistsOrThrow() const =0;
  12. virtual std::vector<std::string> GetRootPaths() const = 0;
  13. virtual std::vector<std::string> GetPaths() const = 0;
  14. virtual std::deque<std::string> GetCurrentDir() const =0;
  15. virtual bool SetWorkingDirectory(const std::vector<std::string>& path) =0;
  16. virtual FileAndSumListByRepositoryIndex ListFiles() =0;
  17. virtual void Cd(const std::string& dirName) =0;
  18. };
  19. class ENGINEAPI_EXPORT EngineManager
  20. {
  21. public:
  22. EngineManager() =delete;
  23. static IEngine* Open(const std::vector<std::string>& paths);
  24. };
  25. }