CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
LocalFileIterator.hpp
Go to the documentation of this file.
1
2//
3// CeresEngine - A game development framework
4//
5// Created by Rogiel Sulzbach.
6// Copyright (c) 2018-2023 Rogiel Sulzbach. All rights reserved.
7//
8
9#pragma once
10
11#include "Forward.hpp"
12
14
15#include <filesystem>
16
17namespace CeresEngine {
18
21 private:
24
27
29 std::filesystem::directory_iterator mIterator;
30
33
34 public:
36
39
42
44
45 public: // IFileIterator
47 [[nodiscard]] IFileSystem* getFileSystem() const override;
48
50 [[nodiscard]] bool isValid() const override;
51
53 [[nodiscard]] const FileHandle& getParent() const override;
54
56 [[nodiscard]] Int32 getIndex() const override;
57
59 [[nodiscard]] FileHandle getFileHandle() const override;
60
62 void next() override;
63
64 protected:
66 };
67
68} // namespace CeresEngine
A retain-release type of smart pointer.
Definition SmartPtr.hpp:132
Handle for a file or directory.
Definition FileHandle.hpp:46
Interface for iterating on directories.
Definition FileHandle.hpp:477
Interface for accessing file systems.
Definition FileSystem.hpp:28
File iterator for the local file system.
Definition LocalFileIterator.hpp:20
LocalFileIterator(LocalFileSystem &fs, FileHandle &&fileHandle)
const FileHandle & getParent() const override
Gets the parent FileHandle this iterator iterates over.
std::filesystem::directory_iterator mIterator
The Directory handle.
Definition LocalFileIterator.hpp:29
FileHandle mFileHandle
The file handle the iterator is operating on.
Definition LocalFileIterator.hpp:26
LocalFileIterator & operator=(LocalFileIterator &)=delete
LocalFileIterator(const LocalFileIterator &)=delete
IFileSystem * getFileSystem() const override
FileHandle getFileHandle() const override
Gets the current entry file handle.
Int32 mIndex
The index of the current entry.
Definition LocalFileIterator.hpp:32
void next() override
Advances to the next item.
bool isValid() const override
Checks if iterator points to a valid item.
LocalFileIterator & operator=(const LocalFileIterator &)=delete
RC< LocalFileSystem > mFileSystem
File system that created this iterator.
Definition LocalFileIterator.hpp:23
Int32 getIndex() const override
Gets the current index of iterator in the directory.
LocalFileIterator(LocalFileIterator &&)
An implementation of a local file system.
Definition LocalFileSystem.hpp:17
Definition Application.hpp:19
std::int32_t Int32
Definition DataTypes.hpp:21
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25